0

DOM 要素 (div1) は jquery アニメーションを実行していましたが、クリックなどの手動イベントで DOM 要素が削除されました

この場合はどうなりますか?

4

1 に答える 1

0

実際には、DOM 要素を直接削除する方法はありません。DOM から削除して ( を使用.removeChild())、それへの参照をクリアできます。その DOM 要素への他の参照がない場合にのみ、ガベージ コレクターはしばらくしてから実際にそれを取り除きます。

ただし、アニメーションが実行されている場合、そのアニメーションにはそれへの参照があり、ガベージコレクターが実際にアニメーションを削除するのを防ぎ、アニメーションは完了するまで続く可能性があります。DOM から削除された場合、DOM にない場合は表示されないため、アニメーションの効果は表示されなくなりますが、プロパティはまだアニメーション化されています。

アニメーションが終了し、アニメーション クロージャ参照がアニメーション キューからクリアされたためにアニメーションへの参照が解放されると、ガベージ コレクターは最終的に要素を実際に削除できるようになります。

参考までに、必要に応じて、アニメーション化された jQuery オブジェクトを呼び出し.stop(true)て、現在のアニメーションを停止できます。

于 2012-09-14T05:33:13.717 に答える