阻止jQuery事件冒泡

10, 06, 2009 / ,

jQuery对DOM的事件触发具有冒泡特性。有时利用这一特性可以减少重复代码,但有时候我们又不希望事件冒泡。这个时候就要阻止jQuery.Event冒泡。

jQuery.Event的文档中的开头得知,jQuery.Event对象是符合W3C标准的一个事件对象,同时jQuery.Event免去了检查兼容IE的步骤。

jQuery.Event提供了一个非常简单的方法来阻止事件冒泡:event.stopPropagation();

$("p").click(function(event){
    event.stopPropagation(); // do something
})

但是这个方法对使用live绑定的事件没有作用,需要一个更简单的方法阻止事件冒泡:return false;

$("p").live("click", function(){
    $(this).after("Another paragraph!");
    return false;
});
  • http://www.clspace.cn charley

    代码格式很好看

    • http://allenle.com Allen

      一个叫SyntaxHighlighter的Wordpress插件,快转到Wordpress吧,哈哈。

  • http://niunan.org 牛腩

    太棒了。。正好需要用到这个。。原来只是return false;这么简单啊。。呵呵。。多谢楼主了。。。

  • wayne

    if(window.event) {
    event.cancelBubble = true;//IE
    }else {
    event.stopPropagation();// 其它浏览器下阻止冒泡
    }
    在ie下药这么处理。
    不过live的情况我还没有办法。

  • Pingback: javascript和jquery如何防止事件冒泡 » Terry's Blog

  • kxb

    return false会使得checkbox失效,可以试下

  • Pingback: JS冒泡特性浅析 - jQuery - 开发者问答

  • Dolly

    even.target不行么