0

dom要素を想定すると、2つ以上のliveバインディングがあります(またはdelegateそれについて)。(1 つ以上は、私が使用する jquery プラグインからのものである可能性があります)、どちらが優先されますか。

$(selector).live('click', function(e) {
  alert(1);
});

$(selector).live('click', function(e) {
  alert(2);
  e.stopPropagation();
  alert(3);
});

その後、誰かが をクリックするselectorと、3 つのアラートすべてが表示されます。

誰か説明できますか?

PS: 根本的な問題は、他の場所 (読み取りファイル) にライブ バインディングがある場合、それらは上書きされるのか、それともすべて実行されるのかということです。

4

2 に答える 2

0

それらはすべて順番に実行されます。event.stopPropagation()を呼び出すことにより、後で呼び出されるイベントハンドラーの発生を停止できます。(明らかにそうではありません!)不思議なことに、呼び出す$(selector).off('click')と、に接続されているすべてのイベントハンドラーが削除されます.live('click').live実際には非推奨になっているため、を使用することはお勧めしません.on

ソース

于 2013-02-26T19:32:33.950 に答える
0

以前のバインディングをバインド解除しない限り、新しいイベント リスナーが追加されるだけで、それらはすべて実行されます (何かが実行を停止しない限り)。

于 2013-02-26T19:29:49.057 に答える