如果我使用jQuery创建一个添加空div的函数,在div创建的空白区域内执行一些动画,然后删除div,浏览器永远不会为空div设置空间(设置高度和宽度)。
如果我不删除我的函数中的空div,那么浏览器将创建所需的空间并且一切正常。但是,我确实需要在动画完成时删除div创建的空白区域。
有没有办法排队div removeall,以便浏览器显示所需的行为?
答案 0 :(得分:3)
一些jQuery效果有回调,它将在效果后运行,例如:
$('#someDiv').slideDown(100, function() {
$(this).remove();
});
答案 1 :(得分:1)
通过对jQuery和setTimeout进行Google搜索,我找到了一个将我发送到不同轨道的示例。我认为问题出现了,因为div操作是在与实际动画不同的选择器上。这会导致即使在动画仍然出现时也会创建和删除div。通过向div添加一个简单的animate语句,延迟删除直到主动画完成后,我才能达到预期的效果。
答案 2 :(得分:0)
如果使用setTimeout,它不起作用吗? - )
答案 3 :(得分:0)
问题是在函数结束之前DOM不会更新。因此,使用setTimeout将导致dom更新,并在100ms后,您的其余功能可以继续。如果你不想看到新的div,我会将位置设置为绝对值,将顶部设置为-5000。它将具有尺寸等,只是不会被看到。您还可以将可见性(在css中)设置为隐藏,只要您担心它会显示在屏幕上。