【发布时间】:2015-01-23 18:25:15
【问题描述】:
我有 3 个 div 像这样叠加:
<div id="div1" style="height: 500px; width: 500px; position:absolute; z-index: 1"></div>
<div id="div2" style="height: 500px; width: 500px; position:absolute; z-index: 2"></div>
<div id="div3" style="height: 500px; width: 500px; position:absolute; z-index: 3"></div>
它们都有 on.click 事件处理程序,会弹出不同的消息
是否有可能在单击一个时,无论哪个在顶部,它都允许所有通过单击(尝试“指针事件:无”但禁用所有功能)的底层 div 触发其各自的事件处理程序?假设我点击了 div 3 并且 div 2 和 3 也触发了它们的事件处理程序。另外,我不想要像这样的硬编码解决方案:
$('#div3').on('click',function() {
// trigger div 1 and 2 events manually
})
指针事件的问题:没有人拥有它,不会像我想要的那样触发它的事件处理程序,有什么方法可以解决这个问题?
【问题讨论】:
-
为什么不为所有三个 div 使用一个类并使用该类点击事件?
-
据我了解,使用
pointer events不是一个好主意,因为它没有很好的支持。我认为使用 jquery 的硬编码解决方案将是可行的方法 -
类硬编码的问题在于,有时底层 div 的大小与顶部的大小不同,并且硬编码类事件处理程序将触发所有底层元素,即使鼠标没有t 正好在各种尺寸的底层之上。
标签: jquery html css events click-through