33

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

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

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

バブリング時に最初に見つかった要素でこれを1回だけトリガーできるようにするにはどうすればよいですか?返品を追加できますfalseか?

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

5 に答える 5

46

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

$('myclass').bind('amodaldestroy'), function(event) {
    ....does something....
    event.stopPropagation();
});
于 2010-12-23T20:34:26.850 に答える
13

使用するevent.stopPropagation();

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

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

于 2010-12-23T20:35:37.597 に答える
7

IE <9でのサポートの場合:

$(".element").click(function(e)
{
    var event = e || window.event;
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});
于 2013-04-02T13:09:13.817 に答える
4

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

return false;

return falsestopPropagationと_event.preventDefault...

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

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

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

preventDefaultデフォルトのイベントが発生するのを防ぎますstopPropogatio。nはイベントがバブリングするのを防ぎ、falseを返すと両方が行われます。

于 2010-12-23T20:52:36.347 に答える
2

http://api.jquery.com/event.stopPropagation/

于 2010-12-23T20:32:39.403 に答える