javascript - 在我的例子中如何创建 setTimeout ?

标签 javascript jquery

我想为我的应用实现超时功能。

我的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')
}

最佳答案

这是因为您没有向 setTimeout 传递函数,而是向 playAnimation 传递执行结果。试试这个:

var _this = this;
setTimeout(function() {
    instance.playAnimation(_this);
}, 3000);

请注意,我保存了 this 的值,因为 setTimeout 函数中的 this 将引用 window,而不是 .test 元素。

关于javascript - 在我的例子中如何创建 setTimeout ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690174/

相关文章:

javascript - 如何在输入类型 Number 中屏蔽 +、-、e?

javascript - 使用 vue.js 在其外部渲染组件模板

javascript - 全页垂直幻灯片,如 apple.com/iphone-5c/

javascript - 将 JSON 对象添加到 DIV

javascript - 稍后捕获 jquery ajax 错误

javascript - 在 Angular 中的两个按钮之间切换类,但进行限制以防止同一按钮更改类

jquery - 每行多列的 DropDownList

javascript - 没有内容的无限滚动

javascript - 如何实现标签页的间隔切换功能?

javascript - 如何让月球绕地球平移并一起绕太阳转