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