JQuery.is(';:hover';)在IE9中无法正常工作

JQuery.is(';:hover';)在IE9中无法正常工作,jquery,internet-explorer-9,hover,onmouseout,Jquery,Internet Explorer 9,Hover,Onmouseout,IE9中的弹出div有问题,代码如下: <li id="info001" class="listInfo" onmouseover="ShowPreview(this);" onmouseout="HidePreview();"> 这在Chrome和Firefox中运行良好,但在IE9中,当我移动listItem和预览时,预览开始闪烁,然后当我单独移动预览时,预览被隐藏 有没有办法避免这种情况 编辑:为清晰起见,thePreview div与info001 li重叠,足以在两者之间

IE9中的弹出div有问题,代码如下:

<li id="info001" class="listInfo" onmouseover="ShowPreview(this);" onmouseout="HidePreview();">
这在Chrome和Firefox中运行良好,但在IE9中,当我移动listItem和预览时,预览开始闪烁,然后当我单独移动预览时,预览被隐藏

有没有办法避免这种情况

编辑:为清晰起见,thePreview div与info001 li重叠,足以在两者之间轻松移动鼠标


编辑:

请尝试执行以下操作:

var $thePreview = $("#thePreview");

$(".listInfo").hover(
    function () {
        $thePreview.show();
    },
    function () {
        $thePreview.hide();
    }
);


您仍然可以使用该代码,只需将伪事件从hover更改为mouseenter mouseleave(如果您运行的是1.9+)。有关更多信息,请参见此:jquery.com/upgrade guide/1.9/#hover pseudo event

我认为
:hover
不是有效的jquery选择器。它不会出现在他们的应用程序中,您应该使用jQuery事件处理程序,而不是html onmouse*=“”handlers@PatBurke我不反对你的意见。我是动态创建ListItems的,将处理程序放在那里比较容易。不过,这两种方法都应该有效。@OneTrickPony它在Chrome和FireFox中确实工作得很好,所以我猜它是有效的。我不记得在哪里找到它,但几乎可以肯定它就在这里的某个地方。没错,如果使用.on(),也可以实现动态事件处理程序。我想在我的示例中不清楚,但预览与列表项重叠,如果光标在其中任何一个上,预览将保持不变,类似于弹出菜单。预览中确实有可单击的元素,所以这是必需的。将JSFIDLE添加到原始消息中我注意到您在JSFIDLE中包含了jQuery 1.7.2。这与您在站点上运行的jQuery版本完全相同吗?我在我的站点上使用的是Visual Studio 2012附带的1.7.1。您是否可以在每个li中使用一个span标记,并使用类名“preview”,而不是在ul之外使用该div?
var $thePreview = $("#thePreview");

$(".listInfo").hover(
    function () {
        $thePreview.show();
    },
    function () {
        $thePreview.hide();
    }
);