web-dev-qa-db-ja.com

jqueryは要素からプラグインを削除します

私は次のコードのようなものを持っています:

_$(a).click(function() {
  $(element).plugin();
});
_

$($.plugin).remove()を使用する以外に、要素からプラグインを削除する方法はありますか?用語が正しいかどうかはわかりませんが、基本的に要素を元の状態にリセットしたいです。

ありがとう

28
Steven Cheng

プラグインの効果を元に戻すには、プラグインが何をするかを知っている必要があります。多くのプラグインはDOMに追加の要素を追加し、ハンドラーを要素などに追加します。プラグインが追加の要素を作成しない場合は、単純に clone (データとイベントなし)を実行して置き換えることができます。または単に nbind すべてのイベントハンドラーですが、それが常に効果的であるとは限りません。問題のプラグインに大きく依存します。

12
tvanfosson

これが私の汚い解決策です:

$('#myWidget,#myWidget *').unbind().removeData();
20
devside

プラグインがその機能を提供しない限り、おそらくそれは簡単にはできません。プラグインの機能を調査し、具体的にはそれらを元に戻すか、プラグインされていない要素のクローンを保存して後で置き換える必要があります。

4
Matchu