0

アイテムを削除する必要があるかどうかを確認するダイアログ ボックスを表示する次のコードがあります。問題は、削除ボタンをクリックするたびに、項目の ID が毎回 #dialog データに追加されることです。

したがって、初めて削除すると、期待どおりにIDだけが警告されます。削除する別のアイテムをクリックすると、以前の ID も表示されます。ダイアログに添付されたデータを正しくクリアするにはどうすればよいですか?

// Delete confirmation modals
$('#dialog').on('show', function() {

    var $this = $(this);
    var id = $this.data('id');

    $('#delete-confirm').click(function(e) {
      e.preventDefault();

        $this.removeData('id', id);

        alert(id);

    });
});

$('.delete').click(function(e) {
  e.preventDefault();
  $('#dialog').data('id', $(this).data('id'));
});
4

1 に答える 1

3

id変数を新しい値に更新することは決してありません.data('id')

// Delete confirmation modals
$('#delete-confirm').click(function(e) {
    e.preventDefault();    
    $("#dialog").removeData('id');    
    alert($("#dialog").data('id'));    
});

$('.delete').click(function(e) {
  e.preventDefault();
  $('#dialog').data('id', $(this).data('id'));
});

また、複数のイベントを同じ要素にバインドしていないことを確認してください。これは要素で発生する可能性がありdelete-confirmます。ダイアログを複数回表示させて確認し、削除を複数回確認します。アラートが何度も発生し始める場合は、イベントを再バインドしています。

于 2012-08-22T19:21:45.107 に答える