让函数在用户将鼠标悬停在链接上 2 秒后执行

2024-01-11

是的,我知道这个问题以前曾被问过,但我找不到有效的答案。这是其他问题之一的公认答案:

$('#element').hover(function()
{
    $(this).data('timeout', window.setTimeout(function()
    {
        alert('hovered for 2 seconds');
    }, 2000));
},
function()
{
    clearTimeout($(this).data('timeout'));
    alert('mouse left');
});

http://jsfiddle.net/nCcxt/ http://jsfiddle.net/nCcxt/

正如你所看到的,它没有做它应该做的事情。

我需要的在理论上很简单,但我无法让它工作 - 当用户将鼠标悬停在链接上 2 秒时,会调用一个函数。如果用户在 2 秒之前将鼠标移开,则不会发生任何情况。


代码工作得很好 http://jsfiddle.net/ThiefMaster/nCcxt/1/。它仅因以下原因而破裂alert()导致触发 mouseout 事件的调用。

我们从中学到什么?不使用alert()结合焦点/悬停/鼠标移动相关事件。

顺便说一句,已经有 jQuery 插件可用于您想做的事情:http://cherne.net/brian/resources/jquery.hoverIntent.html http://cherne.net/brian/resources/jquery.hoverIntent.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让函数在用户将鼠标悬停在链接上 2 秒后执行 的相关文章

随机推荐