我想扩展一个jQuery插件。
在我要扩展的插件的粘贴中,我隐藏了除主体结构之外的所有其他内容,我认为与我想要做的事情有关(我可能错了)以及我想要的一种特殊方法延伸:
(function (factory) {
if (typeof exports === 'object') {
// CommonJS
module.exports = factory(require('jquery'));
} else if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
/**
* Kontrol library
*/
"use strict";
/**
* Definition of globals and core
*/
var k = {}, // kontrol
// ...
k.c = {};
k.c.d = $(document);
k.c.t = function (e) {
return e.originalEvent.touches.length - 1;
};
/**
* Kontrol Object
*
* Definition of an abstract UI control
*
* Each concrete component must call this one.
* <code>
* k.o.call(this);
* </code>
*/
k.o = function () {
// ...
};
/**
* k.Dial
*/
k.Dial = function () {
// ...
// this is one of the methods I want to extend:
this.change = function (v) {
this.cv = v;
this.$.val(this.o.format(v));
};
// ...
};
$.fn.dial = $.fn.knob = function (o) {
return this.each(
function () {
var d = new k.Dial();
d.o = o;
d.$ = $(this);
d.run();
}
).parent();
};
}));
理想情况下,我想更好地了解架构方面的情况,但如果有人能指出如何扩展change()方法,我会很高兴。
我见过像this one这样的答案,但在我的情况下,Namespace和pluginName会是什么?