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

时间:2014-02-04 00:47:49

标签: 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, '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);

我到底错过了什么?以上是没有效果的。

1 个答案:

答案 0 :(得分:1)

看起来该方法在闭包范围内,请尝试

setTimeout(backToStart, 3000);

甚至string参数都是错误的,因为在这种情况下你需要调用像setTimeout("backToStart()", 3000);这样的函数,但是方法backToStart必须在全局范围内