$('#div1')。focus(function(){ callAnotherFunction();
$(this).animate({});
}
我试图在$(this).animate({});
完成后执行callAnotherFunction();
。目前,两者同时运行。我已经定时使用delay(),setTimeout()也无济于事。无论如何这可以做到吗?
谢谢!
答案 0 :(得分:2)
JavaScript是单线程的,因此一次只能执行一个表达式。在您提供的示例中,$(this).animate({});
将在callAnotherFunction();
完成后才会运行。
callAnotherFunction();
可能会在计时器或延迟上运行其他代码,在这种情况下,您必须在超时时$(this).animate({});
具有相等或更大的延迟,以便之后执行。
答案 1 :(得分:0)
如有疑问,请将您的功能作为参数传递:
$('#div1').focus(function () {
var $t = $(this);
callAnotherFunction(function(){ $t.animate(); });
}
...使用callAnotherFunction看起来像这样:
function callAnotherFunction(callback){
// do whatever you were previously doing, and then...
callback();
}