Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery show()参数在调用'complete'函数之前不延迟?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么jQuery show()参数在调用'complete'函数之前不延迟?

Javascript 为什么jQuery show()参数在调用'complete'函数之前不延迟?,javascript,jquery,Javascript,Jquery,声明从jQuery 1.4.3开始,可以调用.show(),如下所示: .show( [duration ] [, easing ] [, complete ] ) 其论点如下: duration(默认值:400):确定动画将运行多长时间的字符串或数字 easing(默认值:swing):一个字符串,指示用于转换的easing函数 complete:动画完成后调用的函数 我不需要放松,所以我把这个版本叫做: .show( [duration ] [, complete ] ) 我有一个功

声明从jQuery 1.4.3开始,可以调用
.show()
,如下所示:

.show( [duration ] [, easing ] [, complete ] )
其论点如下:

  • duration
    (默认值:400):确定动画将运行多长时间的字符串或数字
  • easing
    (默认值:swing):一个字符串,指示用于转换的easing函数
  • complete
    :动画完成后调用的函数
我不需要放松,所以我把这个版本叫做:

.show( [duration ] [, complete ] )
我有一个功能,应该是显示一个div,等待5秒,然后在500毫秒内淡出

我试过这个:

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

$('#some_div').show(5000, function() { fadeOutHelper(500); } );
在这两种情况下,
show()
都不会在调用helper函数之前实际等待5000毫秒

我使用
setTimeout()
找到了解决StackOverflow问题的方法:

虽然我有一个解决方法,但我想了解我是如何误解jQuery
show()
docs中一些非常简单的函数参数的

我有一个功能,应该是显示一个div,等待5秒,然后在500毫秒内淡出

您想在5秒钟内显示div,还是立即显示div,然后等待5秒钟等待回调?如果是前者,那么第二次尝试就可以了,只是需要删除一个额外的
}
。使用一些额外的空白,很明显:

$('#some_div').show(5000, function() {
    fadeOutHelper(500);
}}); // oh noes, synax error
如果是后者,那么您引用的“变通方法”是实现所需的正确方法
setTimeout
不是黑客攻击。
这方面没有什么“解决办法”:

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

什么是“淡出器”?它不是延迟(),持续时间是显示某个内容所需的时间,而不是运行某个随机函数之前的等待时间,即使它可以这样使用?文档中哪里有说明它将按持续时间延迟操作?Duration是指定希望show方法执行的时间段,而不是延迟。文档说明:
Duration:一个字符串或数字,用于确定动画将运行多长时间。
Francois,请将其作为答案发布?解决方法是我误解了show()中的“delay”参数,因为show要么打开,要么关闭,延迟意味着什么。(那么为什么他们要包括它呢?它似乎什么都不做。)没有延迟参数。有一个持续时间参数。显示元素可以设置动画。在我的部分添加内联编辑。额外的}在我的代码中不存在。你所说的“在5秒内显示一个div”是什么意思?你指的是fadeIn()?我所说的“在5秒内显示一个div”是指API文档中关于
持续时间
参数的意思:“动画将运行多长时间”。由于show()不提供动画(与fadeIn和fadeOut不同),这意味着该参数是无意义的,不是吗?你错了,这就是它的全部内容
show()
确实提供了动画。+1用于解释
setTimeout
是一个可行的解决方案,而不是黑客攻击。
$('#flash_helper').show();
setTimeout(function() { fadeOutHelper(500); }, 5000);