3

ループがあり、リンクを動的に追加します#content。2通り書きました。

(1)

$.each(array, function(key, value) {
    $('#content').append('<a href="#">text</a>');
    $('#content a:last').click(function(e) {
        $.ajax({ url: ...
             ...
        });
    });
});

(2)

$.each(array, function(key, value) {
    $('#content').append('<a href="#">text</a>');
});

$('#content a').click(function(e) {
    $.ajax({ url: ...
         ...
    });
});

Q: (2) の代わりに (1) の方法を使用する方が悪いですか? どうして知っていますか?すべてのメソッドが何秒経過するかをテストするようにタイマーを設定する方法 (「クリック」イベントをバインドする) は?

4

2 に答える 2

2

私は2番目のものを好むので、お勧めします...それはよりクリーンで読みやすく、まったく必要のないクリックハンドラーを何度も作成しません(このため、委譲onはjqueryの後のバージョンで導入されました。効率的にまったく同じこと....(2)スクリプトが機能しているとは思えませんが:)..動的に作成された要素の最も近い静的な親にクリックイベントを委任する必要があるため、あなたの場合はa..

$.each(array, function(key, value) {
  $('#content').append('<a href="#">text</a>');
});

$('#content').on('click','a',function(e) {
  $.ajax({ url: ...
     ...
  });
});
于 2013-07-15T18:57:22.610 に答える