0

DOM 元素 (div1) 正在执行 jquery 动画,并且 DOM 元素在手动事件中被删除,例如单击

在这种情况下会发生什么?

4

1 回答 1

0

实际上没有办法直接删除 DOM 元素。您可以将其从 DOM 中移除(使用.removeChild())并清除对它的引用。只有当没有其他对该 DOM 元素的引用时,垃圾收集器才会在一段时间后真正摆脱它。

但是,如果上面运行了动画,则该动画将引用它,以防止垃圾收集器实际删除它,并且动画可能会一直持续到完成。如果它已从 DOM 中移除,您将不会再看到动画的效果,因为它不在 DOM 中时是不可见的,但它的属性仍在动画中。

当动画结束并且由于动画闭包引用从动画队列中清除而释放对它的引用时,垃圾收集器最终将可以自由地实际删除元素。

仅供参考,如果您愿意,您可以调用.stop(true)任何动画 jQuery 对象来停止其当前动画。

于 2012-09-14T05:33:13.717 回答