0

重複の可能性:
要素を動的に追加し、セレクターを使用しようとしています.click event Jquery

$(function(){
  $('a.bar').click(function(){
    // do something
  });

  $('a.foo').click(function(){
    $('#toto').append('<a class="bar">bar</a>');
  });
});


 <a class="foo">foo</a>
 <div id="toto"></div>

他のイベントによって追加されたdom要素の準備ができているJQueryで定義されたクリックイベントを自動的にアタッチするにはどうすればよいですか(たとえば、をクリックしa.fooa.bar)?

4

3 に答える 3

1

必要なのは、委任されたイベントの手法です。以下を使用して.on

$(document).on('click', 'a.bar', function(){
    // do something
});
于 2013-01-16T15:23:41.440 に答える
0

init()すべてのトリガーを設定し、DOM の変更後に呼び出す関数を作成できます。例えば:

$(function() {
  init();

  $('a.foo').click(function(){
    $('#toto').append('<a class="bar">bar</a>');
    init();
  });
});

function init() {
  $('a.bar').click(function(){
    // do something
  });
}
于 2013-01-16T15:24:22.597 に答える
0
$(document).ready(function(){
  $('.foo').click(function(){
    $('<a class="bar">bar</a>').appendTo('#toto');
  });

  $('#toto').delegate('.bar', 'click', function(a){
    $('.foo').toggle();    
  });
});

デリゲートを使用します。

于 2013-01-16T15:25:19.843 に答える