2011-07-20 2 views
0

要素が破棄された後、jQueryのように見えますが、data()、すべてのイベントハンドラなどで保存された値を含め、すべてのjQuery関連のデータは破棄されます。保存して、再度使用することができます。このデータを簡単に取り出すことが可能かどうか、あるいは何とか自分で保存して再作成する必要があるのだろうか?jqueryハンドラ/ dom破棄後のデータの作成

jquery:http://jsbin.com/examuh/2/editで書かれた簡単な例です。その効果はhttp://jsbin.com/examuh/2で確認できます。ご覧のように、3番目のハンドラーだけが動作します。再適用が動作した後に追加されます。破棄後に追加されたものであっても、再適用前は追加されません。どうやら、DOMは#idと共に保存されています。

PS:私の実際の例はもっと複雑で、親を破壊する前にdom要素を安全な場所に移動するためにそれを作り直すのはおそらく面倒です。

答えて

2

イベントハンドラとjqueryデータなどを保持する場合は、jQueryメソッド.detach()を使用してDOMから要素を削除できます。その後、標準の.append()/ .prepend()メソッドを使用して、DOMツリーに後で再挿入することができます。

.remove()を使用すると、jQueryデータが削除されます。あなたの例では、divのhtml()プロパティを設定すると、divの子要素のjQueryで.remove()を使用するのと同じ効果があることが示されているようです。

var keepThis = $("#toRemove").detach(); 
//.. later on 
$("#insert-point").append(keepThis); 
+0

ありがとう、何が起こっているのかを説明しました。どの子要素が後で必要になるのか分からないので、私はDOM IDで識別された場所にデータを保存し、必要に応じて後で再接続します。 – trakos

関連する問題