0

jQuery に少し問題があるので、助けていただければ幸いです。とても簡単だと思いますが、本当にわかりません:-(

問題は、jQuery append() 関数を使用していくつかのコンテンツを作成し、このコンテンツにリンクがあり、押された場合に独自の関数を実行することです。

例はこちら: http://jsfiddle.net/5ahkD/2/

$(document).ready(function () {
    $(".add").click(function () {
        $("#items").append('<div id="item">\n\
                   <a href="#" class="delete" id="delete">Delete!</a>\n\
                   Some content inside div element...\n\
                   </div>');
    });

    $(".delete").click(function () {
        $(this).hide();
    });
  });

「アイテム追加!」はリンク付きのコンテンツを生成し (「削除!」)、このリンクはクリックすると消えます。一番下のリンクだけでわかるように、このリンクが append() を介して書かれていない場合にのみ問題ありません...

ばかばかしいほど簡単なことはほぼ間違いありませんが、この作業を行う方法が見つかりません。

4

2 に答える 2

1

ページの読み込み中に存在する要素にイベント処理を委任する必要があります。.on()jQuery が提供するメソッドはまさにそれを行います 。

$(document).on('click', '.delete', function(){
    $(this).hide(); // will  hide the delete
    // $(this).parent().hide(); //will hide the .item
});
于 2013-03-13T20:22:53.660 に答える
0

ライブ イベント ハンドラを使用します。新しく作成/追加された要素で機能します

$("#items").on("click", ".delete", function () {
    $(this).hide();
});

作成した行を実際に削除する場合は、次を使用します。

$(this).parent().remove();
于 2013-03-13T20:23:43.323 に答える