【发布时间】:2013-02-08 19:18:47
【问题描述】:
我在 IE9 中使用以下代码弹出 div 时遇到问题:
<li id="info001" class="listInfo" onmouseover="ShowPreview(this);" onmouseout="HidePreview();">
我的 HidePreview 检查以确保鼠标不在 listItem 或预览本身上,如下所示:
function HidePreview() {
if (!($('#thePreview').is(':hover') || $('#info001').is(':hover'))) {
$('#thePreview').hide();
}
}
这在 Chrome 和 Firefox 中运行良好,但在 IE9 中,当我移过 listItem 和预览时,预览开始闪烁,然后当我单独移过预览时,它会被隐藏。
有什么办法可以避免吗?
编辑:为清楚起见,thePreview div 与 info001 li 重叠,足以在它们之间轻松移动鼠标。
【问题讨论】:
-
我不认为
:hover是一个有效的jQuery 选择器。它没有出现在他们的docs -
你真的应该为此使用 jQuery 事件处理程序而不是 html onmouse*="" 处理程序
-
@PatBurke 我不同意你的观点。我正在动态创建 ListItems,将处理程序放在那里更容易。但是,它应该以任何一种方式工作。
-
@OneTrickPony 它在 Chrome 和 FireFox 中运行良好,所以我猜它是有效的。我不记得我在哪里找到它了,但几乎可以肯定它是在这里的某个地方。
-
没错,如果你使用 .on() 你也可以实现动态事件处理程序。
标签: jquery internet-explorer-9 hover onmouseout