0

私の問題は次のとおりです.jQuery Postの成功メソッドは、divの先頭に追加しているデータを返しますが、先頭に追加したデータはDOMにないようです。

jQuery 郵便番号:

$('#form').submit(function() {

  var text = $("#input").val();

  $.ajax({
     type: "POST",
     url: "file.php",
     data: "name=" + text,
     success: function(data) {
      $("#app").prepend("<span class='delete'>" + data + "</span>");
     }
  });

    return false;
});

これはスパンを削除するコードですが、先頭に追加された要素を削除していません。

$('.delete').on('click' , function() {

    $(this).hide();

});
4

1 に答える 1

4

問題はspan、ハンドラーがバインドされたときに要素が存在しなかったclickため、イベントハンドラーがトリガーされないことです。まだ存在していない要素のイベントをキャプチャするには、イベント委任を使用する必要があります。

$('#app').on('click', '.delete', function() {
    $(this).hide();
});

これで、ハンドラーはにバインドされ#appます。これは常に存在します。子要素で発生するイベントは「バブル」し、親でもトリガーされるため、の子孫要素にバインドされているすべてのクリックイベントは#app、元の要素がに一致する場合にこのハンドラーをトリガーし.deleteます。

于 2012-05-22T22:17:04.930 に答える