5
我创建了一个简单的jQuery扩展(这是我的第一个扩展)。创建jQuery扩展。范围问题
(function($){
var MyClass = function(opt){
//..
};
//one of the methods of my extension
$.fn.myExtension = function(opt){
this._ext = new MyClass(opt);
return this;
};
$.fn.myExtensionOtherMethod = function(){
if(this._ext){
//do something ..
}
return this;
};
}(jQuery));
//using ..
$(document).ready(function(){
$('#selector').myExtension({
//options ..
});
$('#selector').myExtensionOtherMethod();
});
当调用方法$('#selector').myExtensionOtherMethod();
,this
不包含this._ext
变量。我知道这是其他范围,但我知道有两种方法访问该变量的方法。我可以做到吗?
您的最终目标是什么?您希望为每个匹配选择器的元素创建一个myClass的新实例或选项,还是您的扩展将使用的myClass的单个实例,无论选择哪个元素? –
您每次使用'$('#selector')'时都会创建一个不同的对象。 – charlietfl
你想完成什么?使用'data()'可能会有所帮助 – charlietfl