有没有人扩展现有的jQuery插件?
我不确定从哪里开始.我宁愿不实际复制和修改我希望扩展的插件.我是通过原型或只是对插件的延伸调用来做到这一点吗?
或者我梦想这样做有意义吗?
嗨,我正在尝试扩展这个 jQuery插件,但似乎我似乎找不到像其他插件那样做的方法.我试过了:
$.fn.picEdit.somefunction = function() {
Run Code Online (Sandbox Code Playgroud)
但似乎插件函数是封装的.
有谁知道如何覆盖这个特定的插件(不在JS插件的内部编辑/黑客)?我只是想知道它是否可以延长.谢谢.
jQuery插件使用这样的模式来隐藏插件的私有函数:
(function ($) {
var a_private_function = function (opts) {
opts.onStart();
}
$.fn.name_of_plugin = function (options) {
a_private_function(opts);
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
然后jQuery使这些fn函数可用如下:
some_callback = function() {};
jQuery('selector').name_of_plugin( { onStart: some_callback } );
Run Code Online (Sandbox Code Playgroud)
现在我想覆盖a_private_function.有没有办法在不修补实际插件代码的情况下访问它?
我想也许我可以通过使用调用者来访问私有函数的执行上下文但是这不起作用:
some_callback = function() {
console.log(some_callback.caller.a_private_function); // -> undefined
};
jQuery('selector').name_of_plugin( { onStart: some_callback } );
Run Code Online (Sandbox Code Playgroud)