2013-02-11 90 views
1

jQuery API documentation for show()状态,作为jQuery的1.4.3的,可调用.show()像这样:为什么在调用`complete`函数之前jQuery show()参数不会延迟?

.show([duration ] [, easing ] [, complete ]) 

随着参数为:

  • duration(默认值:400):一个字符串或数字决定动画运行的时间。
  • easing(默认值:摆动):一个字符串,指示用于转换的缓动函数。
  • complete:动画完成后调用的函数。

我不需要缓解,所以我只是把这个版本:

.show([duration ] [, complete ]) 

我这是为了显示一个div,等待5秒钟一个功能,然后淡出超过500MS 。调用辅助函数之前

$('#some_div').show(5000, function() { fadeOutHelper(500); }); 

而且在两种情况下会show()实际上等待5000毫秒:

我已经试过这样:

$('#some_div').show({ 
     duration: 5000, 
     complete: function() { fadeOutHelper(500); } 
    }); 

这。

我发现了一个变通StackOverflow上使用setTimeout()jQuery show for 5 seconds then hide

$('#some_div').show(); 
setTimeout(function() { fadeOutHelper(500); }, 5000); 

虽然我有一个变通,我想了解我是如何在jQuery的show()文档误会一些非常简单的函数参数。

+2

什么是'fadeOutHelper'? – 2013-02-11 17:12:15

+0

这不是延迟(),持续时间是显示某些内容所需的时间,而不是等待一段时间,然后再运行一些随机函数,即使它可以被某种程度的使用。 – adeneo 2013-02-11 17:13:06

+1

在文档中,哪些地方会延迟该操作的持续时间?持续时间将指定您希望显示方法执行的时间段,而不是延迟时间。文档状态:'持续时间:决定动画运行时间的字符串或数字。' – Nope 2013-02-11 17:13:22

回答

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); 
+0

Bade内嵌编辑。额外}不在我的代码中。 “在5秒内展示一个div”是什么意思?你指的是fadeIn()吗? – 2013-02-11 17:16:58

+0

通过“在5秒内显示div”我的意思是API文档的意思是'duration'参数:“动画将运行多长时间。” – 2013-02-11 17:18:20

+0

由于show()不提供动画(与fadeIn和fadeOut不同),这意味着该参数毫无意义,不是吗? – 2013-02-11 17:21:16

相关问题