我需要找到一种方法将点击事件从顶部的div传递到它下面的div(并忽略更高div上的点击)。 有一种模拟click事件并将其传递给另一个div的已知方法,但这不是一种自然行为,也是最不希望的选择。
事件冒泡似乎没有帮助,因为顶部的div不包含在下面的那个..
有什么想法吗?
这是一个jsfiddle示例:
如果删除“overlay”div,则可以单击其中一个元素。虽然它在那里,但你不能。可以将事件传递给下面的div,但是,位置很重要 - 可以有一个我希望用户能够点击的链接。
答案 0 :(得分:10)
将此css属性添加到叠加层div
:
pointer-events: none;
您可以在http://robertnyman.com/2010/03/22/css-pointer-events-to-allow-clicks-on-underlying-elements/
了解更多相关信息答案 1 :(得分:1)
您可以通过点击另一个div来触发一个div上的点击事件。
您可以创建一个事件,例如
//A function to fire an event
function eventFire(el, etype){
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('cClick');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
}
var div1 = document.getElementByID("firstDiv"); //find the first div
div1.onClick = function() { //attach a onclick event
//Now select the element and fire the event
var div2 = document.getElementById("seconddiv"); //select the second div
eventFire(div2, 'click'); //fire the click event
};
答案 2 :(得分:0)
您是否需要div结构进行渲染? - 我想你可以设置你的第一个div显示为内联,然后将其他div放入其中,这样外部div就会有0高度,然后你就可以点击里面的每个div。