我想为我的应用实现超时功能。
我的setTimsout
代码似乎不起作用。它会立即在我的控制台中输出'call here
,而不是等待3秒钟。
任何人都可以给我一个提示,说明为什么会这样吗?谢谢!
main.prototype.init = function(){
var instance = this;
$('.test').each(function(){
//codes…..
window.setTimeout(instance.playAnimation(this), 3000)
});
}
main.prototype.play = function(item){
console.log('call here')
}
答案 0 :(得分:2)
这是因为您没有将函数传递给setTimeout
,而是执行playAnimation
的结果。试试这个:
var _this = this;
setTimeout(function() {
instance.playAnimation(_this);
}, 3000);
请注意,我保存了this
的值,因为this
函数中的setTimeout
将引用window
,而不是.test
元素。
答案 1 :(得分:1)
window.setTimeout(function(){instance.playAnimation(this);}, 3000)
答案 2 :(得分:1)
你必须将函数传递给setTimeout,试试这个
的setTimeout(函数(){instance.playAnimation(本)},3000);