How to stop events bubbling in jQuery? [duplicate]

你离开我真会死。 提交于 2019-11-26 03:43:44

问题


This question already has an answer here:

  • How do I prevent a parent's onclick event from firing when a child anchor is clicked? 18 answers

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;
})

回答1:


According to jQuery's documentation:

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



回答2:


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();




回答3:


For support in IE < 9:

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



回答4:


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.




回答5:


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



来源:https://stackoverflow.com/questions/4522257/how-to-stop-events-bubbling-in-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!