3

私がこのHTMLを持っているとしましょう:

<ul class="waka_waka">
  <li>Fozzy Bear</li>
  <li>Steve Martin</li>
  <li>John Candy</li>
</ul>

...次に、イベントリスナーがjQueryで追加されます。

$('ul li').click(function() { console.log('waka_waka!!!'); });

ある時点で突然発生した場合:

$('.waka_waka').remove();

それらのイベントリスナーは自動的に切り離されて解放されますか?それとも、これは実際にメモリリークを引き起こしますか?削除する前にそれらのリスナーを削除するのがベストプラクティスですか?

4

1 に答える 1

2

jQueryによると、DOCS removeはバインドされたすべてのイベントハンドラーも削除します

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

ただし、この質問を見てください。DOMの削除に伴うjQueryのメモリリークは、ある時点でメモリリークが発生した可能性があります(この質問はかなり古いため、今までに解決されているはずです)。

于 2012-11-09T18:02:11.207 に答える