如何在 jQuery 中阻止事件冒泡?

发布于 2024-10-08 17:29:41 字数 421 浏览 8 评论 0原文

如何停止 jQuery 中的自定义事件冒泡?

例如,我有这样的代码:

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

如何只允许在冒泡时找到的第一个元素上触发一次?我可以只添加 return false 吗?

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

How do I stop custom event bubbling in jQuery?

For example I have this code:

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

How do I only allow this to be triggered once on the first element it finds when bubbling? Can I just add return false?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

这样的小城市 2024-10-15 17:29:41

根据 jQuery 的 文档

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

According to jQuery's documentation:

$('myclass').bind('amodaldestroy'), function(event) {
    ....does something....
    event.stopPropagation();
});
玻璃人 2024-10-15 17:29:41

使用 event.stopPropagation();

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

也可以使用 return false 但两者之间有一个微妙的区别,即返回 false 也会调用 event.preventDefault();

Use event.stopPropagation();

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

You can also use return false but there is a subtle difference between the two in that returning false also calls event.preventDefault();

孤星 2024-10-15 17:29:41

对于 IE < 的支持9:

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

For support in IE < 9:

$(".element").click(function(e)
{
    var event = e || window.event;
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});
终止放荡 2024-10-15 17:29:41

这可能不是那么好,但是

return false;

return false 会同时执行 stopPropagationevent.preventDefault...

如果你只想要一个,你可以根据情况选择根据您的选择

,请阅读此内容,这是来自 SO,只有

return false 才能有效地阻止Default 和 stopPropogation。

preventDefault 将阻止默认事件发生,stopPropogation 将阻止事件冒泡,而 return false 将同时执行这两种操作。

This might not be that great but

return false;

return false will do both stopPropagation and event.preventDefault...

if you want only one you can choose based on your choice

please read this , this is from SO only

return false is effectively both preventDefault and stopPropogation.

preventDefault will prevent the default event from occuring, stopPropogation will prevent the event from bubbling up and return false will do both.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文