我目前有一个jQuery.event
监听器,一旦触发将显示一个隐藏的元素(基本上是翻转)。
但是,有没有办法让jQuery等待几毫秒,重新检查以确保鼠标仍在元素上,然后触发.show()
事件,如果是的话?
我目前有:
$("#who-mousearea").mouseenter(function(){
$("a#who-edit").fadeIn();
}).mouseleave(function(){
$("a#who-edit").fadeOut();
});
我知道我可以使用setTimeout,但这只会延迟fadeIn()元素所需的时间。
任何人都知道如何实现这个目标?
答案 0 :(得分:5)
var timeout = null;
$("#who-mousearea").mouseenter(function(){
timeout = setTimeout(function() {
timeout = null;
$("a#who-edit").fadeIn();
}, 50);
}).mouseleave(function(){
if (timeout == null) {
$("a#who-edit").fadeOut();
}
else {
clearTimeout(timeout);
}
});
答案 1 :(得分:0)
鼠标离开时清除超时。