【发布时间】:2014-12-22 21:33:02
【问题描述】:
我试图检测 mouseleave() 事件触发后鼠标去了哪里。
$( "#menu li" )
.mouseleave(function(e) {
if($('#menu li:hover').length==0){
//the mouse left menu
}else{
//the mouse is pointing to another li
}
});
在 Opera、Chrome 和 IE 上,这可以正常工作。但在 Firefox 上,当鼠标仍在元素内时,mouseleave 事件似乎会触发。所以 $('#menu li:hover').length 的值总是 1。
我想出了一个丑陋的解决方法:用 setTimeout 函数包装 if 语句并给定间隔 1ms。当然,这并不总能解决问题。
有什么方法可以优雅地解决这个问题吗?
【问题讨论】:
标签: javascript jquery firefox