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



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

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

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

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

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

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

最新更新