9

IE8 で div の状態を確認する際に問題が発生しています。マウスが現在いくつかの div の上に置かれているかどうかを確認したい。現在 IE8 では、次のエラーが発生します Syntax error, unrecognized expression: hover。以下は、エラーの原因となっている jQuery です。

// This function will close the slideout of widgets
function CloseWidgetPanel()
{
    if (!$("#widgets").is(":hover") && !$(".widgetPanel").is(":hover"))
    {
        if ($("#widgets").is(":animated"))
        {
            $("#widgets").stop(true, true);
        }
        $("#widgets").hide("slide", { direction: "right" }, 300);
    }
    else
    {
        // We are currently hovering over a panel, so check back in 2 seconds.
        setTimeout(CloseWidgetPanel, 2000);
    }
}
4

2 に答える 2

10

別の方法:

$(".widgetPanel, #widgets").hover(function() {
    $(this).toggleClass('hover')
});

それで:

if (!$("#widgets").is(":hover") && !$(".widgetPanel").is(":hover"))

change to

if (!$("#widgets").hasClass('hover') && !$(".widgetPanel").hasClass('hover'))
于 2012-12-05T17:45:06.167 に答える
7

jQuery は:hoverセレクターを実装しておらず、IE8 は をサポートしていないためqueryselectorall、失敗します。グローバル(または親スコープ)変数を設定するか、要素に状態クラス/属性を適用する mouseenter および leave イベントなど、要素が現在ホバーされていることを検出する別の方法を見つける必要があります。

于 2012-12-05T17:41:38.873 に答える