我有两个 jQuery 插件: 第一个:
;(function($){
function CbUploader(element,options){
widget=this;
.....
}
$.fn.cbUploader = function(options){
new CbUploader(this,options);
return this;
};
})(jQuery);
第二个:
;(function($){
function CbGallery(element,options){
widget=this;
$('body').on('click',".thumbnail-upload",function(){
console.log(widget)
});
$.fn.cbGallery = function(options){
new CbGallery(this,options);
return this;
};
})(jQuery);
当我单击 .thumbnail-upload div console.log 时,返回 CbUploader 对象而不是 CbGallery。为什么插件范围隔离在我的情况下不起作用?
最佳答案
不要全局注册widget
变量,使用var
局部变量。就像您所做的那样,您使用 window.widget = this
然后互相覆盖。
function CbGallery(element, options) {
var widget = this;
$('body').on('click', '.thumbnail-upload', function() {
console.log(widget);
});
}
也在 CbUploader
函数中执行相同的操作。
关于javascript - 可在 jQuery 插件外部访问的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38522060/