当父元素阻止冒泡时,单击事件不被触发

时间:2011-02-24 15:38:57

标签: javascript event-handling cross-browser nested event-bubbling

我在一些现代浏览器中进行了测试,结果不一致。我确定它与捕获与冒泡事件支持差异有关。我已经设置了一个测试环境来复制此问题:pastebin并使用this service来运行实时预览。

问题在于:当祖先阻止冒泡时,某些浏览器会忽略锚点href click事件。它没有意义,因为中间元素会在它向下冒泡之前触发它的事件但是锚元素不会。为什么javascript点击事件有效,但href事件不会?

按下“click me”时,我的结果如下:

Chrome 9.0.597.98 :href被忽略+内部和外部打印

IE 8.0.6001.19019 :href工作+内部和外部打印

Firefox 3.6.13 :忽略href +打印内部和外部

所以我的最终问题是:当祖先元素阻止事件冒泡时,如何让href在跨浏览器中工作?任何见解将不胜感激。

修改

我只想指出,在Pointy的评论中继续讨论,我还要感谢他的巨大帮助!

1 个答案:

答案 0 :(得分:3)

问题在于它不是

event.returnResult = false;
在IE浏览器中,它是:

event.returnValue = false;

该链接在IE中完成,因为您没有正确告诉浏览器不采取默认操作。

如果想要发生默认操作,则不要调用“.preventDefault()”并且不要将“returnValue”设置为false