1

我正在使用 mouseleave 关闭弹出菜单。这在我所有的目标浏览器中都能正常工作,除了 IE7。在 IE7 中,鼠标离开会在光标明显仍在目标元素上方时触发。我在下面以黄色突出显示了弹出窗口的主容器。如果我如图所示定位鼠标并稍微移动它(仍在黄色范围内),则在包含黄色的元素上触发 mouseleave。关于这里发生了什么的任何想法?当光标仍然可见时,什么可能导致在元素上触发 mouseleave?

替代文字

仔细观察后,我发现即使光标位于弹出窗口的不透明部分上也会触发 mouseleave 事件。

替代文字

4

4 回答 4

3

透明标签。

快速修复 - 以 1x1.gif 作为背景。

其他选项是时间触发 mouseleave

于 2010-12-28T18:16:26.617 回答
2

只要 JavaScript 从一个元素移动到另一个不低于页面层次结构中已注册元素的元素,就会触发 mouseleave 事件。浏览器是否有可能认为您正在移动到构成菜单的元素上,该元素实际存在于弹出窗口下方(即具有较低的 z 值)?

于 2010-12-28T18:21:49.143 回答
1

在我的案例中,下面的代码解决了 IE7 jquery mouseleave 问题:

"position" : "relative";
"z-index" : 2000;

我的标签有背景 gif 图像,但没有成功。只有设置我有预期行为的css。

于 2011-02-01T09:01:40.447 回答
0

我能够明确定义背景。

如果不这样做,1x1 透明 gif 也可以工作。

.content { /* IE-8: mouseleave/mouseenter 在你点击背景时触发,所以需要明确声明*/ background: white; }

于 2013-09-23T07:30:50.080 回答