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

Trigger if continously hover for certain time

本文关键字:一段时间 悬停 连续 如果      更新时间:2023-09-26

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

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

Try

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

演示:小提琴