我需要在按钮上进行连续1000毫秒的悬停时触发一个方法。每当悬停在其他元素上时,应重置timeout
。我如何使用javascript / jquery实现这样的东西?
首选解决方案是不需要使用新插件。
答案 0 :(得分:6)
尝试
$(function(){
var timer;
$('.item').hover(function(){
timer = setTimeout(function(){
console.log('do it')
}, 1000);
}, function(){
clearTimeout(timer);
});
})
更新
$(function(){
$('body').on('mouseenter', '.item', function(e){
var timer = setTimeout(function(){
console.log('do it', e.target)
}, 1000);
$(this).data('myTimer', timer);
}).on('mouseleave', '.item', function(e){
clearTimeout($(this).data('myTimer'));
});
})
演示:Fiddle