我想要创建一个jQuery插件来包装图表组件。它将具有像addLineSerie或addBarsSerie这样的函数。然后,我想要创建其他插件来扩展这个插件,以添加新功能或覆盖所需的内容,但仍然能够调用原始插件函数。
我从下面的方法开始。这有点工作,但正如我后来意识到的那样,我不能调用原始的“父”实现(如果我创建了myB的一个实例,就不能调用myA.goA2)。
(function($){
$.fn.myA = function(settings) {
this.goA = function() {alert("goA: "+settings);};
this.goA2 = function() {alert("goA2: "+settings);};
return this;
};
})(jQuery);
(function($){
$.fn.myB = function(settings) {
this.myA(settings);
this.goA2 = function() {alert("goA2B: "+settings);};
this.goB = function() {alert("goB: "+settings);};
return this;
};
})(jQuery);所以我有两个问题:
implementation?
谢谢。
发布于 2011-05-18 22:00:46
这似乎是正确的,但是要完成跨插件的行为,你就不能这样做:
(function($) {
$.fn.myA = function(settings) {
this.goA = function() {
alert("goA: " + settings);
};
this.goA2 = function() {
alert("goA2: " + settings);
};
return this;
};
})(jQuery);
(function($) {
$.fn.myB = function(settings) {
this.myA = $.fn.myA(settings);
this.goA2fromA = function() {
this.myA.goA2();
};
this.goA2 = function() {
alert("goA2B: " + settings);
};
this.goB = function() {
alert("goB: " + settings);
};
return this;
};
})(jQuery);
$(document).ready(function() {
var a = $('#one').myA({});
var b = $('#one').myB({});
a.goA2();
b.goA2fromA();
});编辑:修正了对myA的调用,并添加了一个调用。检查一下工作的小提琴:
http://jsfiddle.net/PqQgs/4/
https://stackoverflow.com/questions/6051308
复制相似问题