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

时间:2013-02-08 19:18:48

标签: jquery internet-explorer-9 hover onmouseout

我在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重叠,足以轻松地在它们之间移动鼠标。

编辑:http://jsfiddle.net/ControlFreak/QQsGS/

1 个答案:

答案 0 :(得分:0)

尝试做这样的事情:

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

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

Working example on jsFiddle

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