我有一个 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);
};
希望有人觉得这有帮助!
关于jquery 插件上的 javascript 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24568553/