web-dev-qa-db-ja.com

jQueryでイベントバブリングを停止する方法

JQueryでカスタムイベントバブリングを停止するにはどうすればよいですか?

たとえば、私はこのコードを持っています:

$('.myclass').bind('amodaldestroy', function(){
    ....does something.....
})

バブリング時に最初に見つかった要素で一度だけトリガーすることを許可するにはどうすればよいですか? return falseを追加できますか?

$('.myclass').bind('amodaldestroy', function(){
     ....does something.....
    return false;
})
30
Stann

JQueryの ドキュメント によると:

$('myclass').bind('amodaldestroy'), function(event) {
    ....does something....
    event.stopPropagation();
});
43
Daniel T.

event.stopPropagation(); を使用します

_$('.myclass').bind('amodaldestroy', function(e){
    e.stopPropagation();
});
_

_return false_を使用することもできますが、falseを返すことも event.preventDefault(); を呼び出すという点で2つには微妙な違いがあります。

13
Russ Cam

IE <9:

$(".element").click(function(e)
{
    var event = e || window.event;
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});
7
David Sherret

これはそれほど素晴らしいことではないかもしれませんが、

return false;

return falsestopPropagationevent.preventDefault...の両方を実行します

1つだけ必要な場合は、選択に基づいて選択できます

これを読んでください、これはSOのみから

return falseは、事実上preventDefaultとstopPropogationの両方です。

preventDefaultはデフォルトのイベントの発生を防ぎ、stopPropogationはイベントのバブリングを防ぎ、falseを返すことで両方を行います。

3
kobe
2
Codler