全局范围内的jQuery插件函数

时间:2012-06-05 09:08:13

标签: jquery jquery-plugins

现在我已经学习了很多关于jQuery插件开发和jQuery的知识。我创建了一个简单的jQuery插件,我从$ .fn.testplugin移出initialize()函数,但现在initialize()函数在全局范围内。我的问题是如何从$ .fn.testplugin移出initialize()函数,但同时将其作为局部范围。

插件:

(function($){
    function initialize($obj, color){
        $obj.css("color",color);
    };      

    $.fn.testplugin = function(options){
       var defaults = { 
        color: "red"
       };
       var option = $.extend(defaults, options);

       return this.each(function(){
        var $this = $(this);  
        initialize($this, option.color);
       });      
    };
})(jQuery);

2 个答案:

答案 0 :(得分:2)

您的initialize()功能不在全球范围内;你明确地创建了一个定义它的闭包。您无法在发布的代码中从最外层函数外部访问initialize()函数。

答案 1 :(得分:0)

使用var

var initialize = function() {};

它将在您的匿名函数的本地范围内。