我正在使用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' );
}
};
答案 0 :(得分:2)
您应该清理并恢复到插件激活之前的状态。
如果您添加了带有绑定事件处理程序的元素,则可以对它们进行简单的调用remove,因为这会将它们从DOM中删除并删除所有绑定的事件和数据。