如何扩展jQuery插件?

时间:2016-09-09 11:27:52

标签: javascript jquery jquery-plugins extending

我想扩展一个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会是什么?

0 个答案:

没有答案