现在我已经学习了很多关于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);
答案 0 :(得分:2)
您的initialize()
功能不在全球范围内;你明确地创建了一个定义它的闭包。您无法在发布的代码中从最外层函数外部访问initialize()
函数。
答案 1 :(得分:0)
使用var
:
var initialize = function() {};
它将在您的匿名函数的本地范围内。