0

私はこれを尋ねているとは信じられませんが、それについて明確な答えを見つけることができません。私の UL は 2 つの項目で始まり、AJAX 呼び出しによってさらに入力されています。返されたアイテムをその UL に追加し、既に存在する 2 つのアイテムのように「クリック可能」にしたいだけです。

私は、BIND、LIVE、DELEGATE、MAP を含む 12 種類の複雑で複雑な回答を見てきました。すべて、他のものを使用すべきではない理由についての議論があります。これらの議論にはすべて価値がありますが (私は確信しています)、どれもこれほど (一見) 単純なことについて明確な答えを示しているようには見えません。確かに、LI を追加し、リストに対して定義された .click() イベントを使用させる簡単な方法があります。

$.each(api, function(i,item) {
    var listItem = "<li meeting_id='" + item.meeting_id + "'>" + item.meeting_name + "</li>";
    $("#MeetingList").append(listItem);
    /*Do Something here to bind the newly appended LI to the existing click event */
}
4

1 に答える 1

1

イベントハンドラーがバインドされたに dom に追加された要素に対してクリック ハンドラーを機能させるには、(jQuery 1.7 以降delegateでは非推奨)を使用する必要があります。要素を追加するために投稿したコードは問題ありません。変更が必要なコードは、クリック ハンドラーをバインドしている場所です。on

それ以外の

$('ul li').click(function () { ... });

使用する必要があります

$('ul').delegate('li', 'click', function () { ... });

または、jQuery 1.7 以降では、

$('ul').on('click', 'li', function () { ... });
于 2012-04-23T18:21:30.597 に答える