需要用jQuery 实现 在一个元素上鼠标移入延迟200毫秒触发事件,但是200不到则取消触发。用JS也可以

2025-03-23 04:24:49
推荐回答(5个)
回答1:

在jquery中用hover(function(){},function(){})比较好,因为处理鼠标进入离开事件的话,用mouseover 和 mouseout会有bug,用hover的话,参数,前一个是进入的时候触发的函数,后一个是离开的时候触发的函数。
你的这个需求就是进入的时候设置一个settimeout,如果没到200毫秒就退出了,则在第二个参数的函数里面设置一个clearTimeout就可以了。

回答2:

$(function(){
$(target).mouseover(function(){
b=setTimeout(function(){代码...},200) ;
}).mouseout(function(){
clearTimeout(b)
}).
})

回答3:

mouseover/mouseout 与clearTimeout setTimeout结合使用时,确实有一个BUG,看下面这篇文章,里面关于这个bug描述的很详细,有完整的在线实例演示,还有解决的方法:

clearTimeout与mouseover/mouseout 或mouseenter/mouseleave结合使用时无效或闪烁的解决方法

回答4:

setInterval() 和 clearInterval() .
// js
var int;
function test(){
int setInterval("clock()",500) //循环调用函数
}
function test2(){
window.clearInterval(int) //取消调用
}

回答5:

wish4sun 的说法如果是真的那这个算是一种解决办法了
我也在找这个答案 等下去测试