如果连续悬停一段时间,则触发

时间:2013-05-08 10:36:58

标签: javascript jquery

我需要在按钮上进行连续1000毫秒的悬停时触发一个方法。每当悬停在其他元素上时,应重置timeout。我如何使用javascript / jquery实现这样的东西?

首选解决方案是不需要使用新插件。

1 个答案:

答案 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