我正在创建一个下拉菜单。只有在单击导航列表项时才会显示该菜单。我希望它隐藏在mouseout上,但只有在函数运行半秒钟的setTimeout之后才能隐藏。这样可以避免意外的鼠标移动,例如鼠标点击列表项,但稍后移动到li内的扩展下拉的mega菜单。
所以基本的问题是,如何使用jQuery来确定元素当前是否正在悬停?
如果它在半秒后徘徊,我将保留菜单(如果用户将鼠标移出,但立即返回到li)。
如果半秒后,鼠标仍然在li之外,则隐藏菜单。
答案 0 :(得分:2)
如果您只是在clearTimeout
或mouseenter
菜单时使用mouseover
清除超时,那么这将解决您的问题。
然后,您只需在下一个mouseout
或mouseleave
发生时重置超时。
答案 1 :(得分:1)
我发现这样做的唯一方法是使用插件hoverIntent:
答案 2 :(得分:0)
jQueryReferenceToElement.is(':hover')