我在向jquery脚本添加延迟时遇到问题

时间:2012-07-27 12:39:24

标签: javascript jquery

我正在使用我从here获得的大型菜单脚本。除了看到我在我的页面上有一些这样的内容之外,它的工作方式非常完美,我希望用户在菜单打开之前必须将鼠标悬停在链接上。

我知道我需要使用setTimeout()标记和clearTimeout()来执行此操作,以便用户将鼠标从链接中取出时。我只是无法弄清楚把它放在哪里。我只是猜测它,但无论我把它放在哪里,它似乎要么破坏功能,要么无关紧要。

感谢您提供给我的任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

使用此功能可以根据需要添加延迟

// Function declatation
var delay = (function()
{
    var timer = 0;
    return function(callback, ms)
    {
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
    };
})();

用法:

delay(function()
{ 
    // Do thing you want delayed
}, 1000 ); 

1000替换为您要延迟的ms数


修改

$("#menuitem").mouseenter(function()
{ 
    delay(function() 
    { 
        if($(this).is(':hover')) 
            // Show menu
    }, 1000 );     
});