有没有办法解雇忽略z-index的事件?

如果我有这样的事情:

替代文字

有没有办法在BOTH div上触发mouseover事件?

编辑:对不起所有..我试图简化这个问题所以很清楚理解,我忘了提到我有超过100个这样的div那么可能那些解决方案不起作用。 我要看看我是否可以对它们进行调整。 非常感谢大家。

我在这里用JSFiddle编写了一个工作示例:

http://jsfiddle.net/gfosco/CU5YT/

它类似于madeinstefanos的回答,但具体到你的例子..

var mouseX = 0; var mouseY = 0; var front = 0; var back = 0; function log(text) { $("#log").append(text + '
'); } function mouseWithin(selector) { var pos = $(selector).position(); var top = pos.top; var left = pos.left; var height = $(selector).height(); var width = $(selector).width(); if (mouseX >= left && mouseY >= top && mouseX <= left + width && mouseY <= top + height) { return true; } return false; } $(document).bind('mousemove', function(e) { mouseX = e.pageX; mouseY = e.pageY; if (front == 1 && !mouseWithin("#front")) { front = 0; log('Front Leave'); } if (back == 1 && !mouseWithin("#back")) { back = 0; log('Back Leave'); } if (front === 0 && mouseWithin("#front")) { front = 1; log('Front Hover'); } if (back === 0 && mouseWithin("#back")) { back = 1; log('Back Hover'); } });

这是可能的。 您无法获取位于另一个元素下方的元素的一部分的mouseenter | mouseover事件,但如果您知道元素的尺寸和位置,则可以侦听mousemove事件并在鼠标进入某个特定区域时获取。

我创建了两个div,就像你的一样:

 

我想知道当鼠标进入下面div所占据的区域时,为此我编写了这个脚本:

 $(function (){ var divOffset = { top: $("#belowDiv").position().top, left: $("#belowDiv").position().left, right: $("#belowDiv").position().left + $("#belowDiv").width(), bottom: $("#belowDiv").position().top + $("#belowDiv").height(), isOver: false } $(window).mousemove(function (event){ if (event.pageX >= divOffset.left && event.pageX <= divOffset.right && event.pageY >= divOffset.top && event.pageY <= divOffset.bottom){ if (!divOffset.isOver){ divOffset.isOver = true; /* handler the event */ alert("gotcha"); } }else{ if (divOffset.isOver){ divOffset.isOver = false; } } }); }); 

监听mousenter | mouseover并不简单,但工作正常。

这里是小提琴的链接