Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 停止for循环-jquery_Javascript_Jquery_Html_Loops - Fatal编程技术网

Javascript 停止for循环-jquery

Javascript 停止for循环-jquery,javascript,jquery,html,loops,Javascript,Jquery,Html,Loops,我一直在考虑这个问题,但我不能把它应用到我的问题上 以下是我想做的: 使用按钮循环浏览一组html表以开始 使用另一个“暂停”按钮暂停动画 在动画停止的位置继续播放动画 这与我正在研究的内容类似: 我目前的版本太笨重,无法更新小提琴,但概念是一样的。我会像最右边的滑块一样更改表的内容 代码如下: $('#Animate1').click(function(e){ //controls the tabR animation (top small table) for(i = 1; i

我一直在考虑这个问题,但我不能把它应用到我的问题上

以下是我想做的:

  • 使用按钮循环浏览一组html表以开始
  • 使用另一个“暂停”按钮暂停动画
  • 在动画停止的位置继续播放动画
这与我正在研究的内容类似: 我目前的版本太笨重,无法更新小提琴,但概念是一样的。我会像最右边的滑块一样更改表的内容

代码如下:

$('#Animate1').click(function(e){  //controls the tabR animation (top small table)
    for(i = 1; i < 37; i++){  //number of frames in the animation
        (function(i){   
            setTimeout(function(){  
                $('#amount1').val(i);  //this changes the number corresponding to the slider position 
                updateTable2(i);  //this updates the contents of the html table   
                updateHighlightedCell();  //this controls the "highlighted cells"
                $('#hSlider').slider({  animate:true,value: i});}, 1000 );  //this animates the slider
        }(i));  
    }   
});
$('#Animate1')。单击(函数(e){//控制选项卡动画(顶部小表格)
对于(i=1;i<37;i++){//动画中的帧数
(职能(i){
setTimeout(函数(){
$('#amount1').val(i);//这会更改与滑块位置对应的数字
updateTable2(i);//这将更新html表的内容
updateHighlightedCell();//此选项控制“高亮显示的单元格”
$('#hSlider').slider({animate:true,value:i});},1000);//这将为滑块设置动画
}(i) );
}   
});
  • 我也遇到了延误的问题。我试图将延迟加入到循环中,但似乎只是开始延迟。我希望能稍微控制一下帧速率

  • 我所看到的许多例子都停止了无限循环,但我的例子是有限的。如何停止此循环并重新启动它?我的终极循环将有365个“帧”,所以它不会那么快


任何帮助都将不胜感激。谢谢

我在中制作了一个简单的版本,介绍了您可能感兴趣的内容,并希望提取出对您有帮助的组件。他还发表了大量的评论来帮助理解这些作品


我的方法背后的基本思想是让
setInterval()
充当for循环,每个循环一次,它将检查是否对其调用了
clearInterval()
。您将有一个全局计数器来跟踪位置。

您应该使用每个动画的回调函数来启动下一个动画,而不是一次对它们进行调度。要停止循环,请让停止按钮的单击处理程序设置一个全局变量。然后让动画回调函数中的代码检查变量。我想我理解你的意思。我知道如何设置全局变量,但不确定此回调函数在原始函数的上下文中如何工作。当您决定停止它时,for循环已经完成。是的,在fiddle中它确实很快结束。这只是一个例子。在我的工作代码中,它是一个更长的循环,包含更多的表。我举这个例子来展示我的方法。谢谢你的评论。这有助于我更快地了解代码的含义!它与我的代码配合得很好。再次感谢!