0

现在我学习了很多关于 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);
4

2 回答 2

2

您的initialize()功能不在全局范围内;您正在显式创建一个定义它的闭包。您无法initialize()从发布的代码中最外层的函数外部访问该函数。

于 2012-06-05T09:12:20.407 回答
0

使用var

var initialize = function() {};

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

于 2012-06-05T09:12:11.710 回答