0

ページにあるプラグインが何度も参照される状況があります。問題は、プラグインを呼び出す要素がオンザフライで作成されることです。そして、削除など... たとえば。

  1. 私は div 構造を持っており、いくつかの子要素を作成します。

私。これらの子にプラグイン インスタンスを追加します。彼らはいくつかの魔法などを行います..

ii. ユーザーがボタンをクリックすると、子要素の新しいセットが作成されます -- プラグイン インスタンスを作成します。

さて -- 上記の「i」で作成されたものはどうなりますか? 「ウィジェット」を使用していないため、destroy メソッドはありません。

それで、子要素を呼び出して、それらをループしてデータ要素などを破壊することはできますか.. ala.

$.each('[some_class_that_represents_all_elements]', function(a,b){
     $(b).data('PLUGIN_NAME') = null; // or
     delete $(b).data('PLUGIN_NAME'); // or
     $(b).data('PLUGIN_NAME', null);
})

要素が DOM から削除された場合、プラグイン インスタンスも削除/クリーンアップされますか?

4

1 に答える 1

2

$(el).remove() メソッドを呼び出すと、デフォルトで jQuery は $(el).data() を使用して保存したデータをクリーンアップします。

$(el).detach() を使用すると、データは保持されます。

http://api.jquery.com/jQuery.data/

jQuery は、DOM 要素が jQuery メソッドによって削除されたとき、およびユーザーがページを離れたときに、データが削除されることを保証します。

于 2013-10-17T01:03:05.840 に答える