0

私は先週この質問を提出しました:

jquery removeでchromeが機能しない

それを解決することができました(本当に私の愚かさ)が、私の例は非常に単純でした。.remove現在、入力の配列を ajax 関数に送信する前に、ページから完全な div を削除するために使用しようとしています。しかし、私はまったく.remove仕事に就くことができません。

これが私の最新の試みです: http://jsfiddle.net/CJ2r9/2/

複数のブラウザーの jsfiddle で関数が定義されていません。私のアプリケーションでは、エラーはまったく発生しませんが、何も機能しません。

私は JavaScript スコープに比較的慣れていないので、問題がスコープに関するものである場合は、どのように失敗しているか教えてください。

jquery 関数も使用してみました.onが、div ID がサーバー (jstl、Spring MVC など) から動的に読み込まれることを考えると、少し混乱します。それが解決策である場合は、正しい軌道に乗る方法を教えてください。

ありがとうございました!

4

3 に答える 3

1

jsFiddle の 2 つの問題は次のとおりです。

  • スコープ: removeElemDOM でコードを実行するためのデフォルトの構成オプションをそのままにしておいたため、グローバル スコープではありません。「ラップなし」に変更して、関数をグローバルにすることができます。

  • 削除する要素が存在しません。div 要素には「removeXXXp」などの ID があり、イベント ハンドラでは「removeXXXs」を渡します。


これは、要素を削除するための別のより簡単なソリューションです (私の意見では)。あなたのマークアップを考えると:

<div class="scheduleSet" id="remove315p">
    <!-- ... -->
    <a href="javascript:void(0);" class="optionHide">Remove</a>
</div>

.on次のように使用できます。

$('.schduleSet a.optionHide').on('click', function() {
    // traverses up the DOM tree and finds the enclosing .schduleSet element
    $(this).closest('.scheduleSet').remove();
});

IDすら必要ありません。

于 2013-08-06T16:10:30.960 に答える