jQuery延迟CSS更改

时间:2011-11-23 08:37:39

标签: jquery css

我希望为这个jQuery的功能添加300毫秒的延迟,但不是100%确定它应该放在哪里?

我知道我需要添加.delay(300),但不太确定它必须放在下面的代码中。

$("#menu1-holder").mouseleave(function(){
    $('#menu1-holder').css('display', 'none');
});

或者......我应该使用setTimeout吗?如果是的话应放在哪里?

2 个答案:

答案 0 :(得分:4)

$("#menu1-holder").mouseleave(function(){
var that = $(this);
setTimeout(function(){
   that.css('display', 'none');
}, 300);    
});

答案 1 :(得分:2)

您也可以使用简单的脚本执行此操作:

$("#menu1-holder").mouseleave(function(){
    $('#menu1-holder').delay(300).css('display', 'none');
});

选中此http://api.jquery.com/delay/