使用jQuery,如何判断元素当前是否“悬停”

时间:2011-03-02 13:43:01

标签: jquery hover

我正在创建一个下拉菜单。只有在单击导航列表项时才会显示该菜单。我希望它隐藏在mouseout上,但只有在函数运行半秒钟的setTimeout之后才能隐藏。这样可以避免意外的鼠标移动,例如鼠标点击列表项,但稍后移动到li内的扩展下拉的mega菜单。

所以基本的问题是,如何使用jQuery来确定元素当前是否正在悬停?

如果它在半秒后徘徊,我将保留菜单(如果用户将鼠标移出,但立即返回到li)。

如果半秒后,鼠标仍然在li之外,则隐藏菜单。

3 个答案:

答案 0 :(得分:2)

如果您只是在clearTimeoutmouseenter菜单时使用mouseover清除超时,那么这将解决您的问题。

然后,您只需在下一个mouseoutmouseleave发生时重置超时。

答案 1 :(得分:1)

我发现这样做的唯一方法是使用插件hoverIntent:

http://cherne.net/brian/resources/jquery.hoverIntent.html

答案 2 :(得分:0)

jQueryReferenceToElement.is(':hover')