没有jQuery的stopPropagation

我绑定到一个链接(通过使用jQuery的.live()函数) click事件然后手动添加一个onclick事件处理程序与纯JS和HTML(如 )。 我想防止事件冒泡到live方法,但我不知道如何。

也许e.stopPropagation()在这种情况下是有用的,但是用onclick添加的事件处理程序是用纯JS编写的,我不能从jQuery元素包装器外部调用stopPropagation() 。 在这种情况下return false不起作用。 我试图用$.Event('click').stopPropagation()替换return false $.Event('click').stopPropagation()但我认为这是错误的,因为它不起作用。

如何在没有jQuery包装器的情况下防止bubling到live()方法?

我假设在“正常”事件处理程序中return false可以防止事件冒泡, 但我错了 (感谢@Mrchief )。

还有其他方法可以阻止它,如quirksmode.org所述 :

 function doSomething(e) { if (!e) var e = window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); } 

cancelBubble适用于IE, stopPropagation适用于所有兼容W3C的浏览器。