Javascript代理jquery插件

javascript proxy on jquery plugin

本文关键字:插件 jquery 代理 Javascript      更新时间:2023-09-26

我有一个jQuery插件,我需要改变它的默认设置(并强制这些默认设置为插件的每个实例)。修改它的源代码不是一个选项(更新等),所以我想,如果我代理它,我将回家。所以我找了一个例子,如何在JS中做这个:

var proxied = jQuery.ajax; // Preserving original function
jQuery.ajax = function() { 
    jQuery("#loading").dialog({modal: true});
    return proxied.apply(this, arguments);
}
这段代码很简单,但是

我不确定如何以类似的方式代理"元素方法",如 $(".select").multiselect(); ?

好吧,我又搜索了一下,自己找到了答案。

所有的jQuery对象方法都"存储"在jQuery.fn对象中。所以我要做的就是

var proxied = jQuery.fn.multiselect;
jQuery.fn.multiselect = function() {
    // stuff
    return proxied.apply(this, arguments); 
};

希望有人会觉得有帮助!