jQuery延迟不能按预期工作

时间:2010-05-19 14:42:22

标签: javascript jquery animation delay

我有以下jQuery代码

$("#dropdown").hover(function() { 
        $(this).stop(true,true).fadeTo('fast',1);
        $("#options").stop(true,true).slideDown();
    }, function() { 
        $(this).delay(1000).stop(true,true).fadeTo('fast',0.1);
        $("#options").delay(1000).stop(true,true).slideUp();
    }
);

我期望发生的事情是当鼠标离开#dropdown时,它将等待1秒后再继续。这种情况没有发生。

我想要实现的目标,如果有更好的方法,就是在移动鼠标后让下拉菜单显示一两秒,我还想防止事件再次发生以防止出现文物如果你要快速地将鼠标移出div,那就是“funnies”

3 个答案:

答案 0 :(得分:1)

您对stop的调用未放置在动画队列中 - 它们会立即运行。我不确定你是否真的需要它们在“悬停”程序中。

编辑删除了哑巴

答案 1 :(得分:1)

问题是.stop()。如果你把它拿出来就可以了:

http://jsfiddle.net/LZ8yt/

答案 2 :(得分:0)

你可以随时使用setTimeout来使用技术。

var dropDownElement = $(this);
setTimeout(function()
{
    dropDownElement.fadeTo('fast', 0.1);
    // Other Code
}, 1000);