当光标通过鼠标滚轮移动移动时,jquery悬停仍然悬停

时间:2011-10-21 06:41:49

标签: jquery hover mouseover

我不确定这是jquery函数的限制还是我的代码上的错误,但我可以看到http://api.jquery.com/hover/上的示例发生了相同的行为

我的实现是我有一个弹出框,显示鼠标悬停在产品项目上的时间,以及鼠标悬停时隐藏的信息。

问题是当鼠标悬停并且弹出框显示时,如果我用鼠标滚轮/触控板向下/向上滚动页面,而鼠标光标由于滚动而不再出现在产品项目上,则悬停未检测到-out行为,并且弹出框保持在视线中,因为其位置是在悬停事件期间确定的,相对于产品在屏幕上的位置,保持在屏幕中间。

这有意义吗?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是一个有点干扰的解决方案,但它应该有效:

// The normal hover handler
$("#productElement").hover(function(){
  $("#otherElement").show();
},function(){
  $("#otherElement").hide();
});

// A global scroll handler that hides an specific
// element whenever the user scrolls.
$(document).scroll(function(){
  $("#otherElement").hide();
});

在上面的代码中,#productElement将是用户悬停的标签,而#otherElement将是悬停时弹出的对话框。这只是它如何运作的基础;你会根据你的代码进行调整。