0

要素を動的に作成および削除するスクリプトを作成しています。要素の追加は正常に機能します。しかし、 #removeText 関数は起動していません。ページの読み込みが完了した後に作成されたため、何かを想定しています。動的に作成された場合、#removeText クリック機能を動作させるにはどうすればよいですか?

var i = 0;

$('#addText').on('click', function() {
    var div = $("#addText").closest('div').attr('id');

    $("<p><input type=\"text\" id=\"text" + i + "\" placeholder=\"Type something…\"><a href=\"#\" id=\"removeText\">Remove</a></p>").appendTo('#' + div);
});

$('#removeText').on('click', function() {
    console.log(1);
});
4

1 に答える 1

3

#removeTextを呼び出したときに が DOM に存在しない場合、何$("#removeText").onもバインドされません。これは、存在しないためにバインドするものが何もないためです。

すべてが失われるわけではありません。イベント委任を使用します。

$(document).on('click', '#removeText', function () {

おそらく、同様に同じことを行う必要があり#addTextます。DOM に既に存在する要素にも委任できます。

于 2013-02-07T00:18:09.533 に答える