javascript - 可在 jQuery 插件外部访问的对象

标签 javascript jquery jquery-plugins

我有两个 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/

相关文章:

javascript - 覆盖 Primefaces 特定小部件的方法

javascript - 在居中图像的顶部添加 div?

javascript - 将外部自定义 CSS 与 Notify.js jQuery 插件一起使用

javascript - 只要光标在工具提示文本上,如何让 jQuery Beauty Tip 保持打开状态?

javascript - 尝试使用 JavaScript/jQuery 将来自 OMDb API 的 JSON 解析为 HTML Bootstrap 表

javascript - 如何使用 css3 翻转并更改元素?

javascript - Vue $emit 不在父级内部触发

javascript - 点击事件同时打开Popup

javascript - 将对象转换为数组 - 维护命名键

javascript - 如何使用验证插件验证选择列表的 ul 和 li