簡體   English   中英

jQuery .is(“:hover”)在IE8中

[英]jQuery .is(“:hover”) In IE8

我在檢查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);
    }
}

替代方式:

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

然后:

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

change to

if (!$("#widgets").hasClass('hover') && !$(".widgetPanel").hasClass('hover'))

jQuery沒有實現:hover選擇器和IE8不支持queryselectorall ,因此它失敗了。 您必須找到另一種方法來檢測當前正在懸停的元素,例如mouseenter和leave事件,該事件設置全局(或父范圍)變量或將狀態類/屬性應用於元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM