如何销毁/删除jQuery插件的实例?

时间:2015-04-16 07:29:51

标签: jquery

我正在使用sidr,一个用于在侧边菜单中滑动的jQuery插件。它提供了一些公共方法,我想用“destroy”方法扩展它,这将删除插件的实例。

我希望能够拨打$.sidr('destroy', mySidrInstance),就像我已经可以致电$.sidr('open', mySidrInstance)

一样

以下是公共方法

    // Sidr public methods
var methods = {
    open: function(name, callback) {
        privateMethods.execute('open', name, callback);
    },
    close: function(name, callback) {
        privateMethods.execute('close', name, callback);
    },
    toggle: function(name, callback) {
        privateMethods.execute('toggle', name, callback);
    },
    destroy: function() {
        // I want to create this. What should I write here?
    }
};

$.sidr = function( method ) {

    if ( methods[method] ) {
        return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    }
    else if ( typeof method === 'function' || typeof method === 'string' || ! method ) {
        return methods.toggle.apply( this, arguments );
    }
    else {
        $.error( 'Method ' + method + ' does not exist on jQuery.sidr' );
    }

};

1 个答案:

答案 0 :(得分:2)

您应该清理并恢复到插件激活之前的状态。

如果您添加了带有绑定事件处理程序的元素,则可以对它们进行简单的调用remove,因为这会将它们从DOM中删除并删除所有绑定的事件和数据。