要素がページから削除された場合、それは自動的にバインド解除されますか?それとも、これはjqueryのunbindを使用してバインドを解除する必要があるシナリオですか?
自動的に行われると思います...
remove
またはを使用して要素を削除empty
すると、メモリリークを防ぐために、イベントハンドラが自動的に削除されます。それ以外の場合は、それらの要素を削除する前に明示的にバインド解除されない限り、それらは残ります。
編集:内部メソッド(5177行目で宣言).html
を呼び出すことにより、イベントハンドラーも削除されることが判明しました。あなたはソース.cleanData
でこれをチェックすることができます:
html: function( value ) {
...
for ( var i = 0, l = this.length; i < l; i++ ) {
// Remove element nodes and prevent memory leaks
if ( this[i].nodeType === 1 ) {
jQuery.cleanData( this[i].getElementsByTagName("*") );
this[i].innerHTML = value;
}
}
...
innerHTML
したがって、メモリリークを回避するために、 jQueryイベントハンドラーがアタッチされているDOM要素を直接使用して置き換えることはしないでください。