Jquery条件检查是(':hover')不起作用

Was*_* A. 11 jquery if-statement hover

$('.xx').mouseenter(function(){
  if($(this).is(':hover'))
    alert('d');
  else
     alert('f');
});
Run Code Online (Sandbox Code Playgroud)

这是我的代码,它应该警告'd',但每次它警告'f'这里有什么错误

mat*_*uds 31

function idIsHovered(id){
    return $("#" + id + ":hover").length > 0;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/mathheadinclouds/V342R/


Fré*_*idi 15

:hover是一个CSS 伪类,而不是jQuery选择器.它不能与所有浏览器上的is()一起使用.


Con*_*ell 6

正如Frederic所说:hover是CSS的一部分,并不是jQuery中的选择器.

有关替代解决方案,请参阅如何检查鼠标是否在jQuery中的元素上?

将mouseout上的超时设置为淡出并将返回值存储到对象中的数据.然后onmouseover,如果数据中有值,则取消超时.

删除淡出回调的​​数据.