分配给jQuery插件实例的变量返回'undefined'

时间:2014-09-04 04:17:43

标签: jquery jquery-plugins undefined

我正在寻找一种为我正在开发的项目创建倒数计时器插件的方法,并使用此处找到的模板完成: http://stefangabos.ro/jquery/jquery-plugin-boilerplate-oop/

我的插件可以正常工作,并将其分配给变量,如:

var timer1 = new $.timer({
    option1: true, 
    callback1: function(){
        //do something
    }
});

但是当我稍后去检查该变量的值时,它返回undefined而不是一个对象,正如我所料。但是,我可以使用同一个变量来访问我的计时器的公共方法:

timer1.set(10);

它将设置计时器。

但是尝试在变量'timer1'中返回对象会返回undefined。

以下是代码的基础(不幸的是,我的雇主限制我发布它原样 - 我不得不删除实际的方法代码):

;
(function($) {

    $.timer = $.timer || {};
    $.timer = function(options) {
        var defaults = {
            option1: false,
            option2: false,
            callback1: function() {
            }
        };
        var plugin = this;
        plugin.settings = {};

        //local variables

        var sampleVar = 0;

        //constructor

        var init = function() {
            plugin.settings = $.extend({}, defaults, options);
            return plugin;
        };

        //private methods

        var fire = function() {
            //do something here
            plugin.settings.callback1.call(plugin);
        };

        var updateTimer = function() {
            //do something here
        };

        var reset = function() {
            //do something here
        };

        //public methods

        plugin.set = function(time) { 
            //do something here
        };

        plugin.start = function() {
            //do something here
        };

        init();
    };
})(jQuery);

0 个答案:

没有答案