jQuery API documentation for show()
表示从jQuery 1.4.3开始,可以像这样调用.show()
:
.show( [duration ] [, easing ] [, complete ] )
参数为:
duration
(默认值:400):确定动画运行时间的字符串或数字。easing
(默认值:swing):一个字符串,指示用于转换的缓动函数。complete
:动画完成后调用的函数。
我不需要缓和,所以我只称这个版本:
.show( [duration ] [, complete ] )
我有一个应该显示div的功能,等待5秒,然后淡出超过500ms。
我试过这个:
$('#some_div').show( {
duration: 5000,
complete: function() { fadeOutHelper(500); }
} );
而且:
$('#some_div').show(5000, function() { fadeOutHelper(500); } );
在两种情况下,show()
实际上都不会在调用辅助函数之前等待5000毫秒。
我使用setTimeout()
在StackOverflow上找到了解决办法:jQuery show for 5 seconds then hide
$('#some_div').show();
setTimeout(function() { fadeOutHelper(500); }, 5000);
虽然我有一个解决方法,但我想了解我是如何误解jQuery show()
文档中的一些非常简单的函数参数。
答案 0 :(得分:2)
我有一个应该显示div的功能,等待5秒,然后淡出超过500ms。
你想在5秒内显示div,或者立即显示div然后等待5秒进行回调?如果是前者,第二次尝试就可以正常工作,除了你需要删除额外的}
。使用一些额外的空白区域很明显:
$('#some_div').show(5000, function() {
fadeOutHelper(500);
}}); // oh noes, synax error
如果是后者,那么您引用的“解决方法”是正确的方式来实现您想要的。 setTimeout
不是黑客。关于此,没有“解决方法”:
$('#flash_helper').show();
setTimeout(function() { fadeOutHelper(500); }, 5000);