2012-02-28 6 views
3

現在、jQueryモバイルで作業しており、DOMの一般的な動作について簡単に質問しています。現在、AJAX(ページはDOMに挿入されている)を介してロードされたページの要素にイベントをバインドします。jQueryモバイル、DOM、およびイベントバインド

jQuery Mobile docsに従ってページが遷移すると、jQuery MobileはDOMからページを削除します。

jQueryイベントをDOMの存在しなくなった要素にバインドすることについて心配する必要はありますか?私はajax経由でページを変更すると、GCがバインディングをクリーンアップすることを保証していますか?

TLDR:jQueryを使ってバインドされた要素は、[$(...).on("click" ...);] DOMから削除されているとき、私たちはイベントのバインドを解除心配する必要はありますか?またはjavascriptは自動的にそれらのイベントを削除することを知っていますか?

答えて

2

ページを変更すると、ブラウザは前のページのすべてをクリーンアップします。これは心配する必要はありません。

jQueryでは、jQueryの.remove()メソッドを使用してDOMから何かを取り出した場合、jQueryがクリーンアップします。 .remove()を使用せずにDOM要素を手動で削除すると、一部のjQuery状態が適切にクリーンアップされない可能性があります(たとえば、.data()情報など)。

関連する問題