悬停3秒后如何触发事件

有点 :

我有一个div,我只想在用户连续将鼠标悬停3秒钟后才触发事件。我的代码无法正常运行,因为它会在悬停后立即触发并且不会“等待”。

码:

$(".inner_pic").mouseenter(function () {
    setTimeout(function () {
        alert('testing');
    }, 3000);
}).mouseleave(function () {
    alert('finish');
});  
dfsq:

您需要将超时ID存储在某处,并在将其清除时将其清除。使用data属性保存此ID很方便:

$(".inner_pic").mouseenter(function () {
    $(this).data('timeout', setTimeout(function () {
        alert('testing');
    }, 3000));
}).mouseleave(function () {
    clearTimeout($(this).data('timeout'));
    alert('finish');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="inner_pic">PICTURE</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章