gpt4 book ai didi

javascript - 为什么 jQuery.animate 是同步的?

转载 作者:行者123 更新时间:2023-11-29 19:40:36 25 4
gpt4 key购买 nike

为什么这段代码会同步工作?

$this.animate( { 'left': '+=200px' } );
$this.animate( { 'top' : '+=200px' } );

我真的怀疑是否有可能在 JavaScript 中同步执行一个函数。

doSomething();
doSomethingMore();

function doSomething() {
setTimeout(function() {
alert('doSomething finished');
}, 3000);
}

function doSomethingMore() {
setTimeout(function() {
alert('doSomethingMore finished');
}, 1000);
}

如何在函数 doSomething 完成之前不执行函数 doSomethingMore。或者类似的东西。

谢谢。

最佳答案

我在这里只是猜测一下,因为我也无法遵循 jQuery 源代码。 :)

.animate() 将动画添加到队列中。默认情况下,这是 $.fx。当一个项目被添加到队列中时:如果它是第一个,则运行;如果不是,它会一直等到它成为队列中的第一个项目。一旦 jQuery 完成动画运行,它会从队列中删除第一项(即刚刚完成的动画),然后运行第二项。
因此,它只是似乎 同步运行。如果您在第二次调用 .animate() 之后放置另一条语句,您会发现它实际上是立即执行的。这也是 .animate() 接受回调的原因。

还有其他函数可以让您操作队列。例如 .stop().queue()

关于javascript - 为什么 jQuery.animate 是同步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com