1

テーブル要素があります

<table class="ActionMenu" id="tblActionMenu" cellpadding="3" cellspacing="3" >

ジョン

 $('.ActionMenu tr').click(function (e) {
                alert("abcd");
     });

これはうまくいきます。

今javascriptを使用して、同じクラス=「ActionMenu」を持つテーブルを追加しましたが、trをクリックしても機能しません。

Message on Click イベントを動的に作成したテーブルを取得するにはどうすればよいですか

4

3 に答える 3

3

おそらく、関数を定義したとき、新しいテーブルはまだ存在していません。したがって、最新のjQueryバージョン(1.7.x)を使用していると仮定すると、イベント委任を使用して、共通の親(body要素など)でイベントをキャプチャします。

 $('body').on("click", ".ActionMenu tr", function (e) {
      alert("abcd");
 });
于 2012-05-07T12:54:18.600 に答える
0

http://api.jquery.com/on/で委任されたイベントの例を確認してください

$('#tblActionMenu').on("click", "tr", function(){
   //do something
});
于 2012-05-07T13:10:43.833 に答える
0

「ライブ」機能を使用する必要があります...「デリゲート」機能を使用するとさらに効果的です。

それはこのように動作します:

$('.someClass').live('click',function(){}); //adds 'click evt' to every future .someClass inside the DOM

$('#someID').delegate('.someClass','click',function(){}); //adds 'click evt' to every future .someClass inside #someID

詳細については、jQuery API を検索するか、さらにサポートが必要な場合はお知らせください。幸運を!

于 2012-05-07T12:57:06.477 に答える