0

特にイベントバブリングと「ライブ」メソッドでは、いくつかの問題に直面しています。

セルが少ないテーブルがあり、各セル「td」にはリストとリンク「li a」があります。リンクには「.class」が関連付けられています。

リンクを機能させたいだけなので、ライブメソッドを使用します(動的に作成されるため)

$('.aclass').live('click',function() {
// Do something
});

Google Chrome 開発者ツールを使用してイベントのリッスンを見ると、匿名関数をリッスンするリンクではなく、セル全体「td」が表示されます。

なんで?リンクに関数をリッスンさせるにはどうすればよいですか?

4

2 に答える 2

1

[アップデート]

現在、jQuery には.onメソッドがあり、これははるかに優れており、より明確になっています。実行するすべてのイベント処理に対してのみ使用することをお勧めし.onます.off

[/アップデート]

次回はもっとはっきりと書かなければなりません;)

live 関数は、選択したすべての要素の親要素にイベントをバインドするため、あなたの場合は「aclass」クラスを持つ要素の親にバインドします。そして、セレクターに合ったものをクリックすると、イベント関数をリッスンして呼び出します。そのため、動作が異なります。

クリックを要素に直接バインドする場合は、ライブの代わりにバインドを使用して実行します

$('.aclass').unbind('click').bind('click',function(){ something });

いくつかの新しい要素を作成した後は毎回

于 2010-02-20T15:48:56.100 に答える
0

このliveメソッドは、動的に作成された要素に特に役立ちます。あなたの場合、リンクはオンザフライで作成されていないようです。これを簡単に使用できます。

$('.aclass').click(function() {
// Do something
});
于 2010-02-20T03:44:37.620 に答える