プラグインが破棄されたときにプラグインをクリーンアップする方法について、設計上のアドバイスが必要です。
blur
ウィンドウでイベントをリッスンしていますが、プラグインが破棄されたときにそれらのイベントを削除する方法がわかりません。プラグインが複数の要素に適用され、1 つの要素に対してのみ破棄された場合でも、他の要素に対しては機能するはずです。これを設計する正しい方法は何でしょうか?
(function( $ ) {
var methods =
{
init : function( options ) {
var that = this;
$(window).blur( function( e ) {
that.css( "color", "red" );
console.log( "still here" );
});
},
destroy : function( ) {
console.log( "hmmm, got to take out that blur" );
}
};
$.fn.pleaseKillMe = function( method )
{
if ( methods[method] ) {
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
}
else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
}
else {
$.error( 'Method ' + method + ' does not exist on jQuery.p5shrinkwrap' );
}
};
})( jQuery );