扩展现有jQuery插件
我有一个现有的jQuery插件,现在我想扩展它。考虑下面提到的插件:扩展现有jQuery插件,jquery,plugins,jquery-plugins,Jquery,Plugins,Jquery Plugins,我有一个现有的jQuery插件,现在我想扩展它。考虑下面提到的插件: $.fn.x = function(option) { var defaults = { a: 1, b: 2 }; option = $.extend(def, option); function abc() { //do something } funct
$.fn.x = function(option) {
var defaults = {
a: 1,
b: 2
};
option = $.extend(def, option);
function abc() {
//do something
}
function def() {
//do something
}
};
上面这一个是我从某处得到的插件。例如,我需要abc方法的自定义行为
function abc() {
//do something else
}
我不想更改现有的插件,您能告诉我如何通过扩展相同的插件或制作自己的自定义插件来实现相同的功能吗?在这种特殊情况下,您将无法替换/重写该方法,因为它被声明为局部变量。最好的解决方案是编写自己的插件,或者使用
abc
函数的选项扩展这个插件。
大概是这样的:
function abc() {
if(!!option.abc){
return option.abc.call(this);
}
alert('old abc');
}
想想你要找的是什么
有关在不更改插件的情况下进行扩展的困难的信息,请参阅。您能否解释“或使用abc函数的选项扩展此插件”,我不想接触现有的插件。@Rocky Singh-由于插件的编写方式,我看不到解决方法。你需要自己写,或者找一个不同的插件。
newFunctionality = {
abc: function (){
alert('yo');
}
}
$.extend($.fn.x, newFunctionality);
$.fn.x.abc() #=> 'yo'