1

注文を作成するページがあります。このページは ajax と完全に連携して、製品を見つけてページに追加します。

さて、アイテムを追加して削除する必要がある場合、私はそうするための機能を構築していました:

$('.orderRemove').click(function() {
    var removeID = $(this).attr("id");
    $("#item-" + removeID).remove();
    calculateTotal();
});

しかし、.orderRemove は AJAX によって追加されているため、機能しません。

この正確な呼び出しを機能させ、ajax によって追加された完全なブロックを削除するにはどうすればよいですか。

ありがとうございました

4

2 に答える 2

5

その理由は、DOM に動的に追加された HTML がイベント ハンドラーにアタッチされないためです。そのため、ajax 成功のコールバックでイベント ハンドラーを再アタッチするか、または jQuery バージョン 1.7.delegateより前のバージョンを使用している場合、1.7または.onjQuery バージョン 1.7 またはより高い

$(document).delegate('.orderRemove','click',function() {
    var removeID = $(this).attr("id");
    $("#item-" + removeID).remove();
    calculateTotal();
});

.on の例

$(document).on('click','.orderRemove',function() {
   var removeID = $(this).attr("id");
   $("#item-" + removeID).remove();
  calculateTotal();
});
于 2012-10-28T18:36:32.993 に答える
2

onこのように使用する必要があります

$(document).on('click','.orderRemove',function() {
   var removeID = $(this).attr("id");
   $("#item-" + removeID).remove();
  calculateTotal();
});
于 2012-10-28T18:35:45.990 に答える