0

私はアンダースコアの_.defer機能に精通しています。これをjQueryでどのように再現できますか?

私は ajax 呼び出しを実行し、divsその呼び出しの応答から DOM に追加していますが、問題は、新しく作成された に set イベント リスナーを設定する必要がありますが、divsそれらがレンダリングされるまで待たなければならないことです。これどうやってするの?

$.getJSON( mAPI, function( m ) {
   $(m.items).each(function(item) {
       $('#items-container').append('<div class="item">' + item + '</div>');
   });
}):

$( ".item" ).click(function(e) {
    alert( "Handler for .click() called." );
});
4

2 に答える 2

2

あなたの最善の選択肢は、おそらく以下を使用してイベントをコンテナに委任することonです:

$('#items-container').on('click', '.item', function (e) {
    alert('Handler for .click() called');
});

注:このイベント ハンドラーをアタッチする必要があるのは、AJAX 要求ごとではなく、1 回だけです。(ありがとう@ケビンB

于 2013-10-24T15:58:23.197 に答える