Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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动画未按正确顺序运行_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript JQuery动画未按正确顺序运行

Javascript JQuery动画未按正确顺序运行,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在创建一个名为“无意义”的游戏。在英国,这是一场毫无意义的游戏秀。无论如何,有一个倒计时,从100倒计时到球队得到的任何分数。我正试图复制这一点。举个例子,请看这个 无论如何,我试图自己复制倒计时,但是每当我尝试时,整个过程都会立即执行,而不是像应该的那样一次执行一个div。我需要一个接一个地隐藏那些div 请看这个 for(var i=0;i,因为.toggle()事件(以及其他事件)在整个for循环执行后被准确地触发。或者更确切地说,即使它们不在其中,您也几乎同时对所有它们调用toggl

我正在创建一个名为“无意义”的游戏。在英国,这是一场毫无意义的游戏秀。无论如何,有一个倒计时,从100倒计时到球队得到的任何分数。我正试图复制这一点。举个例子,请看这个

无论如何,我试图自己复制倒计时,但是每当我尝试时,整个过程都会立即执行,而不是像应该的那样一次执行一个div。我需要一个接一个地隐藏那些div

请看这个

for(var i=0;i,因为
.toggle()
事件(以及其他事件)在整个for循环执行后被准确地触发。或者更确切地说,即使它们不在其中,您也几乎同时对所有它们调用
toggle
,因此它们将同时切换。一种解决方法是使用计时器,如
setInterval
setTimeout

$('#Go').click(function(){
  var i = 0;
  var timer = setInterval(function(){
      i++;
      $('#' + i).toggle('slide');
      if(i > 10) clearInterval(timer);
    },100)
})

当您在jQuery中调用
toggle
或任何其他动画函数时,它不会阻止其余的代码。动画将继续,而其余的代码正在运行。您可以为每个块添加延迟来启动动画

您可以尝试:

我还建议您使用
.slideToggle('slow')
而不是
.toggle('slide')


Amir解决方案非常好。我只想添加一个小的更正:

jQuery的toggle方法没有任何值可以是
slide
的参数。 以下是正确的语法:

$(selector).toggle(speed,easing,callback)

speed  in [milliseconds, "slow", "fast"]
easing in ["swing", "linear"] (More easing functions are available in external plugins)
callback is a function

我不知道为什么要投否决票,但谢谢你。我学到了一些东西,你解决了我的问题。谢谢你!@AndrewKilburn Downvote可能是因为在这里发布你的代码也比在这里发布虚假代码更好。也许……我不知道!无论如何,我很高兴我帮了忙:)@Amir抱歉,我只是觉得展示一个工作示例会更容易。谢谢@AndrewKilburn就是这样,感谢您发布一个工作示例。但如果这里也有这段代码,那就太好了:)
$('#' + i).delay(i*100).slideToggle('slow');
$(selector).toggle(speed,easing,callback)

speed  in [milliseconds, "slow", "fast"]
easing in ["swing", "linear"] (More easing functions are available in external plugins)
callback is a function