微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在JavaScript中使用setInterval而不使用内联的匿名函数

我想要实现的是,最初将加载数据,然后使用相同的功能每十分钟更新一次.

考虑以下代码

var updateNamespace = (function() {
    var object = '#updates',load = 'loader';

    return {
        update: function() {
            $(object).addClass(load).load('update.PHP',function(reponse,status,xhr) {
                if (status == 'error') {
                    $(this).html('<li>Sorry but there was an error in loading the news &amp; updates.</li>');
                }
                $(this).removeClass(load);
            }); 
        }
    }
})();

setInterval(updateNamespace.update(),600000);

我收到此错误

useless setInterval call (missing quotes around argument?)

我怎样才能解决这个问题?

写这个或使用setInterval函数有什么更好,更优雅的方法

谢谢.

解决方法

你需要使用:
setInterval(updateNamespace.update,600000);

(注意删除的invocation()运算符.)

您编写的代码调用setInterval时实际上会调用updateNamespace.update.因此,

setInterval(updateNamespace.update(),600000);

评估为

setInterval(undefined,600000);

您希望将setInterval传递给函数,而不是调用它的结果.

原文地址:https://www.jb51.cc/js/150269.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐