-2

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

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

4

1 回答 1

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'));
    });
})

演示:小提琴

于 2013-05-08T10:41:53.347 回答