Javascript 等待函数完成,然后才能再次执行
我的图像上有一个onclick事件,它调用一个函数。现在我不想在函数仍在运行时再次调用它。我该怎么做 HTML:Javascript 等待函数完成,然后才能再次执行,javascript,html,Javascript,Html,我的图像上有一个onclick事件,它调用一个函数。现在我不想在函数仍在运行时再次调用它。我该怎么做 HTML: Javascript: 函数myMove(){ var elem=document.getElementById(“rocketEE”); var pos=-1100; 变量id=设置间隔(第1帧); 函数框架(){ 如果(位置==600){ 清除间隔(id); }否则{ pos++; elem.style.left=pos+“px”; } } } 提前谢谢 全局变量是一种方
Javascript:
函数myMove(){
var elem=document.getElementById(“rocketEE”);
var pos=-1100;
变量id=设置间隔(第1帧);
函数框架(){
如果(位置==600){
清除间隔(id);
}否则{
pos++;
elem.style.left=pos+“px”;
}
}
}
提前谢谢 全局变量是一种方法,但是您不应该养成在这样的事情中使用全局变量的习惯。更好的方法是将该变量存储在使用它的对象的范围内。元素本身是一个很好的地方:
function myMove() {
var elem = document.getElementById("rocketEE");
if(elem.isAnimating)
return;
var pos = -1100;
elem.isAnimating = true;
var id = setInterval(frame, 1);
function frame() {
if (pos == 600) {
clearInterval(id);
elem.isAnimating = true;
} else {
pos++;
elem.style.left = pos + 'px';
}
}
}
请注意:这不是制作动画的好方法,一方面,1毫秒的速度会太快,还有更好的方法-例如,全局变量是一种方法,但是你不应该养成在这样的事情上使用全局变量的习惯。更好的方法是将该变量存储在使用它的对象的范围内。元素本身是一个很好的地方:
function myMove() {
var elem = document.getElementById("rocketEE");
if(elem.isAnimating)
return;
var pos = -1100;
elem.isAnimating = true;
var id = setInterval(frame, 1);
function frame() {
if (pos == 600) {
clearInterval(id);
elem.isAnimating = true;
} else {
pos++;
elem.style.left = pos + 'px';
}
}
}
请注意:这不是一种制作动画的好方法,一方面,1毫秒的速度会太快,还有更好的方法,例如有什么问题?错误?即使在应该完成之后,它仍然运行吗?@Ifaruki问题是,当它仍然运行时,你可以调用它。但现在已经解决了问题是什么?错误?即使在应该完成之后,它仍然运行吗?@Ifaruki问题是,当它仍然运行时,你可以调用它。但现在问题解决了