我正在使用 mouseleave 关闭弹出菜单。这在我所有的目标浏览器中都能正常工作,除了 IE7。在 IE7 中,鼠标离开会在光标明显仍在目标元素上方时触发。我在下面以黄色突出显示了弹出窗口的主容器。如果我如图所示定位鼠标并稍微移动它(仍在黄色范围内),则在包含黄色的元素上触发 mouseleave。关于这里发生了什么的任何想法?当光标仍然可见时,什么可能导致在元素上触发 mouseleave?
仔细观察后,我发现即使光标位于弹出窗口的不透明部分上也会触发 mouseleave 事件。
我正在使用 mouseleave 关闭弹出菜单。这在我所有的目标浏览器中都能正常工作,除了 IE7。在 IE7 中,鼠标离开会在光标明显仍在目标元素上方时触发。我在下面以黄色突出显示了弹出窗口的主容器。如果我如图所示定位鼠标并稍微移动它(仍在黄色范围内),则在包含黄色的元素上触发 mouseleave。关于这里发生了什么的任何想法?当光标仍然可见时,什么可能导致在元素上触发 mouseleave?
仔细观察后,我发现即使光标位于弹出窗口的不透明部分上也会触发 mouseleave 事件。
透明标签。
快速修复 - 以 1x1.gif 作为背景。
其他选项是时间触发 mouseleave
只要 JavaScript 从一个元素移动到另一个不低于页面层次结构中已注册元素的元素,就会触发 mouseleave 事件。浏览器是否有可能认为您正在移动到构成菜单的元素上,该元素实际存在于弹出窗口下方(即具有较低的 z 值)?
在我的案例中,下面的代码解决了 IE7 jquery mouseleave 问题:
"position" : "relative";
"z-index" : 2000;
我的标签有背景 gif 图像,但没有成功。只有设置我有预期行为的css。
我能够明确定义背景。
如果不这样做,1x1 透明 gif 也可以工作。
.content { /* IE-8: mouseleave/mouseenter 在你点击背景时触发,所以需要明确声明*/ background: white; }