Eri*_* R. 9 javascript jquery jquery-hover
我在检查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);
}
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*kij 10
替代方式:
$(".widgetPanel, #widgets").hover(function() {
$(this).toggleClass('hover')
});
Run Code Online (Sandbox Code Playgroud)
然后:
if (!$("#widgets").is(":hover") && !$(".widgetPanel").is(":hover"))
change to
if (!$("#widgets").hasClass('hover') && !$(".widgetPanel").hasClass('hover'))
Run Code Online (Sandbox Code Playgroud)
jQuery没有实现:hover选择器而且IE8不支持queryselectorall,因此它失败了.您必须找到另一种方法来检测当前正在悬停的元素,例如mouseenter和leave事件,该事件设置全局(或父范围)变量或将状态类/属性应用于元素.