我有一个绝对定位的div,我试图触发mouseenter和mouseleave事件。在IE8 / 7中,div的背景颜色未指定(因此它默认为透明),当光标穿过div的边界时,mouseenter / leave事件不会触发,只有div的中间位置和光标位于div内的任何文本上。
当我尝试通过向div添加背景颜色来调试问题时(例如背景颜色:绿色),问题神奇地消失了。 div的盒子模型完美地受到尊重,并且鼠标中心/离开火焰就像预期的那样。只有当div的背景颜色未指定(或者甚至明确设置为透明)时,它才会表现不正常。
有什么想法吗?谷歌搜索这个IE错误/怪癖似乎什么都没有。
答案 0 :(得分:4)
在光标碰到可见的东西之前,mouseenter和mouseleave没有注册。这不是正确的行为,但这是我们正在处理的资源管理器。
两种可能的解决方案:
不幸的是,这两种解决方案都非常糟糕。
编辑:问题:mouseover和mouseout是否显示出同样奇怪的行为?
答案 1 :(得分:0)
要添加到此:在上面的答案中使用解决方案3时,onclick也会激活。总的来说,在IE中抓取透明元素上的非透明元素点击是一个很好的解决方法。