Javascript 延迟悬停时显示和隐藏内容
我需要做一件事。 我在网站上有一个元素。当用户将鼠标悬停在该项目上时,例如,我需要显示警报。但延迟:当用户将鼠标悬停在项目上,一秒钟后鼠标仍在项目上时,将显示警报。我可以这样做,但当鼠标离开同一个项目时(当鼠标离开项目,一秒钟后仍然在项目之外时),我想做同样的事情。现在我使用这个代码,但它当然不适用于离开Javascript 延迟悬停时显示和隐藏内容,javascript,jquery,hover,Javascript,Jquery,Hover,我需要做一件事。 我在网站上有一个元素。当用户将鼠标悬停在该项目上时,例如,我需要显示警报。但延迟:当用户将鼠标悬停在项目上,一秒钟后鼠标仍在项目上时,将显示警报。我可以这样做,但当鼠标离开同一个项目时(当鼠标离开项目,一秒钟后仍然在项目之外时),我想做同样的事情。现在我使用这个代码,但它当然不适用于离开 $('.test').hover(function(){ mytimeout = setTimeout(function(){ alert("enter"); }, 1000)
$('.test').hover(function(){
mytimeout = setTimeout(function(){
alert("enter");
}, 1000);
}, function(){
clearTimeout(mytimeout);
});
$('.test').mouseleave(function() {
alert("escape");
});
当然,我不会将其用于警报;)
我不知道怎么做。悬停在悬停中?还是用别的?
谢谢你的帮助,对不起我的英语。你差一点就学会了。jquery hover函数接受两个参数:onHoverStart(或onMouseOver)处理程序和onHoverStop(或onMouseLeave)处理程序。您只需要将警报添加到onHoverStop处理程序中
$('#test').hover(function(){
setTimeout(function(){
alert("enter");
}, 1000);
}, function(){
setTimeout(function(){
alert("escape");
}, 1000);
});
在两个块中都需要超时,输入/离开,如下所示:
var$demo=$(“#demo”);
无功定时器;
$('.test').hover(函数(){
//清除超时,以防在悬停退出中指定的时间内再次悬停
清除超时(计时器);
计时器=设置超时(函数(){
$demo.text(“输入”);
}, 1000);
},函数(){
//清除悬停中设置的超时
清除超时(计时器);
计时器=设置超时(函数(){
$demo.text(“退出”);
}, 1000);
});代码>
让我停下来!
如果需要,您可以在mouseleave
中遵循相同的想法,只需在悬停
事件上清除计时器timer\u mouseleave
:
var timer_mouseleave;
$('.test').hover(function(){
clearTimeout(timer_mouseleave);
mytimeout = setTimeout(function(){
alert("enter");
}, 2000);
}, function(){
clearTimeout(mytimeout);
});
$('.test').mouseleave(function() {
timer_mouseleave = setTimeout(function(){
alert("escape");
}, 2000);
});
希望这有帮助。试试这个。只需在每个悬停事件上重置超时
(function(){
var mytimeout = null;
$('.test').hover(function(){
clearTimeout(mytimeout);
mytimeout = setTimeout(function(){
alert("enter");
},1000);
});
})();
这正是我需要的。非常感谢。