我的插件中没有调用更新函数

时间:2017-05-29 13:38:55

标签: javascript jquery

我正在尝试创建一个超级简单的插件。这是我的代码:

 var methods = {
        init: function (userOptions) {
            console.log('init');

            setInterval(this.update, 1000);
        },

        update: function(){
            console.log(this);
        }
    };

    $.fn.myPlugin = function (methodOrOptions) {
        if (methods[methodOrOptions]) {
            return methods[methodOrOptions].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof methodOrOptions === 'object' || !methodOrOptions) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + methodOrOptions + ' does not exist on jQuery.myPlugin');
        }
    };

这里初始化被称为罚款,但不会每1秒调用一次更新。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

这绑定到jquery对象。它没有this.update。可以这样做:

setInterval(methods.update.bind(this), 1000);

只需获取全局方法对象的更新功能,并将jquery对象绑定到它。