使更高的z-index元素禁用下部元素的onclick

Nat*_*han 2 html javascript css z-index onclick

我有一个'层',我想给一个onclick.诀窍是我希望上面的图层上的元素在单击时不执行该操作.

我怎样才能做到这一点?

谢谢!

til*_*ryj 6

您遇到的问题是由事件通过DOM树向上传播的方式引起的.单击页面上的元素时,该元素的单击处理程序将有机会响应单击.除非处理程序停止事件传播,否则父元素将有机会处理事件,依此类推,直到达到根元素.

这种行为通常感觉很自然,点击元素"后面"的每个元素都有机会响应事件.但是,当您使用绝对定位时,可以将元素放在另一个元素的前面,而该元素不是dom树中的祖先.此时,事件传播可能会令人困惑.只有被点击的元素祖先才会收到click事件,这意味着它后面的元素可能不会.

我创建了一个jsfiddle - http://jsfiddle.net/HUGNd/ - 来说明这种情况.

修复它的一种快速方法是确保要响应click事件的元素是被单击的元素的祖先.否则,无论调用哪个元素的事件处理程序,您都可以在javascript中实现所需的结果.


Fre*_*ing 5

调用event.stopPropagation()以防止“冒泡”。或者,如上所述,更改绝对定位元素的父级关系。