1

I am working in a browser extension. I am putting some icons next to links in google search pages. These icons trigger some actions and I need stop bubble events after user clicks on it. In resume, parent div tags must not know about clicks on these icons.

Next code allow stop bubbling events in all browsers:

if (event.cancelBubble) {
        event.cancelBubble = true;
}
if (event.returnValue) {
        event.returnValue = false;
}
if (event.stopPropagation) {
        event.stopPropagation();
}
if (event.preventDefault) {
        event.preventDefault();
}

In Firefox works well but in this context not works in IE (version 8 at least). Any idea about it?

4

2 回答 2

2
if (event.cancelBubble) {
        event.cancelBubble = true;
}

这没有意义。true如果它已经评估为真(在布尔上下文中),它只会将其设置为。去掉 if 子句(即总是无条件地设置它);设置一个不存在的值通常不会造成任何伤害(除非您将其设置在具有丑陋实现的主机对象上)

于 2011-01-26T22:50:57.297 回答
0

或尝试将其设置为 false,如果您使用 true,则事件将触发事件触发后的代码,当事件具有布尔值时,有时可能意味着您可以自由控制该事件,如果您说真话,该事件可能会执行其他功能。当说 false 时,该事件不会执行其他功能,但这仅取决于该功能的方式。

编码器制作了他的功能/代码。

但简单来说“要处理或引发冒泡事件,控件必须覆盖 OnBubbleEvent 方法。”,这就是你做相反的地方,如果你这样做了,不要覆盖。

如果你还没有读过这个http://msdn.microsoft.com/en-us/library/aa719644(v=vs.71).aspx就像我说的相反。

; )

希望这对你有所帮助

后期!

于 2011-01-26T23:05:01.993 回答