jQuery 在动画完成后更改值
这段代码永远不会调用警报'ane is true'。
可以从 jQuery 方法 "animate" 更改局部变量 'ane' 吗?
在我的代码中,变量 'ane' 始终为 false。我尝试使用此方法来更改 'ane' 值:
function anim() {
var ane = false;
$('#element').animate({left:'100px'}, 5000, function(){ ane = true; });
while(!ane){}
alert('ane is true');
}
这对我也不起作用:
function anim() {
var ane = false;
var ant = function(){ ane = true; }
$('#element').animate({left:'100px'}, 5000, ant);
while(!ane){}
alert('ane is true');
}
感谢您的回复。
This code down never call alert 'ane is true'.
It is possible to change local variable 'ane' from jQuery method "animate"?
In my code variable 'ane' is always false. I try this method for change of 'ane' value:
function anim() {
var ane = false;
$('#element').animate({left:'100px'}, 5000, function(){ ane = true; });
while(!ane){}
alert('ane is true');
}
This also does not work for me:
function anim() {
var ane = false;
var ant = function(){ ane = true; }
$('#element').animate({left:'100px'}, 5000, ant);
while(!ane){}
alert('ane is true');
}
Thanks for reply.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
现场演示
动画完成后,您将保持警惕。
Live Demo
Once the animation completes you will be alerted.
JavaScript 只有一个线程。如果使用
jQuery无法运行,从而无法执行动画,从而无法完成动画并将
ane
设置为true。JavaScript has only a single thread. If you use
jQuery can't run, thus not execute the animation, thus not complete the animation and set
ane
to true.@Loktar 的答案是正确的,但您可以省略条件
,因为该函数是在动画实际完成时调用的。
使用最新版本的 jQuery (>= 1.8),您可以使用选项 done 检查动画是否实际完成:
The answer of @Loktar is correct, but you could omit the condition
because the function is called when the animation is actually finished.
Using the latest version of jQuery (>= 1.8) you can check if the animation is actually completed using the option done:
试试这个:
ane
最终应该为 true,因为这次执行没有被 while 循环锁定。Try this:
ane
should eventually be true, because this time the execution is not locked by the while loop.感谢大家。我用它来在动画后继续执行相同的函数:
Thanks to all. I used this to continue in the same executed function after animation: