Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 将setTimeout与使用.animate的函数一起使用_Javascript_Jquery_Settimeout - Fatal编程技术网

Javascript 将setTimeout与使用.animate的函数一起使用

Javascript 将setTimeout与使用.animate的函数一起使用,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我使用.animate的函数运行得很好,但我试图添加一个setTimeout(可能是2-3秒),但没有取得多大进展 下面是动画的代码 tt = $('#tickertext'); tt.append('<pre>' + 'Paolo Nutini: New Shoes'); console.log('width ' + tt.width()); w = parseInt(tt.width()); tt.animate({ left: w * -1 }, w * 10, 'line

我使用
.animate
的函数运行得很好,但我试图添加一个setTimeout(可能是2-3秒),但没有取得多大进展

下面是动画的代码

tt = $('#tickertext');
tt.append('<pre>' + 'Paolo Nutini: New Shoes');
console.log('width ' + tt.width());
w = parseInt(tt.width());
tt.animate({
  left: w * -1
}, w * 10, 'linear', backToStart);
$('#ticker').css('width', '155px').css('visibility', 'visible');
$('#tickerholder').css('width', '155px');

function backToStart() {
  tt.animate({
      left: 155 
  }, 1)
  .animate({
      left: w * -1
  }, (w + 155) * 10, 'linear', backToStart);
}

我到底错过了什么?上述情况没有任何影响

该方法似乎在闭包范围内,因此请尝试


甚至字符串参数也是错误的,因为在这种情况下,您需要调用函数,如
setTimeout(“backToStart()”,3000)
,但是方法
backToStart
必须在全局范围内

是的,之前尝试过,但没有成功。也许可以在setTimeout函数中定义
backToStart()
?@DnfD您可以为脚本提供更多的上下文,比如它所在的位置和周围代码的其他部分吗?这个答案应该可以。如果没有,那么您在向我们展示的代码中遗漏了一些重要的内容。@ArunPJohny“闭包范围”在这里的确切含义是什么。我知道一点“闭包”和“范围”,是的,但我无法在代码中找到任何与它们匹配的东西!?!救命啊D@dollarvar如果包含
backToStart
函数的给定代码位被包装在另一个函数(如dom就绪处理程序或任何其他函数)中,则函数
backToStart
将仅在包装函数中可用
setTimeout("backToStart", 3000);
setTimeout(backToStart, 3000);