14

動的タブを使用する UI があるため、コンテンツをタブにロードしてから、タブを閉じてコンテンツをページから削除できます。

タブにコンテンツをロードするとき、jQuery を使用して多くのイベントを要素にアタッチします。

これらの要素をページから削除するとどうなりますか? jQueryは知る必要がありますか?

また、イベントを複数回添付しても問題ありませんか? たとえば、私のタブ ロードでは、 のようなクラス セレクターを使用してイベントをアタッチする場合があります$('.submitButton').click(...)。しかし、submitButton イベントが既に関連付けられている他のタブを既に開いている可能性があります。この場合、同じイベントを再度添付します。これに問題はありますか?

4

2 に答える 2

16

jQuery メソッド.remove()またはを使用する.empty()と、jQuery で割り当てられたすべてのイベント (およびその他のデータ) がクリーンアップされます。

remove() のドキュメントから:

要素自体に加えて、要素に関連付けられたすべてのバインドされたイベントと jQuery データが削除されます。

そして empty() の場合:

メモリ リークを回避するために、jQuery は要素自体を削除する前に、子要素からデータやイベント ハンドラーなどの他の構成要素を削除します。

ネイティブ API の削除方法を使用した場合、そのすべてのデータが残ります。したがって、jQuery メソッドを使用することをお勧めします。

于 2010-07-06T12:51:54.437 に答える
3

.remove()で要素を削除すると、その要素に関連付けられたすべてのバインドされたイベントと jQuery データが削除されます。

DOM から要素を削除しますが、関連するすべてのデータとイベントをメモリに保持する.detach()以外(後でその要素を再挿入する場合に便利です)

于 2010-07-06T12:51:44.140 に答える