我有以下结构
$('foo').click( function() {
var bool = false;
$('bar').animate( function() {
//bool = something
});
return bool;
});
但是因为动画回调是异步的,bool永远不会正确设置。将return语句移动到回调中没有意义。如何让return语句等到动画完成?
答案 0 :(得分:2)
这是不可能的,返回将立即发生 - 没有办法延迟它。尝试这样做:
$('foo').click( function(e) {
e.preventDefault();
var _this = this;
$('bar').animate( function() {
if (somecondition) {
window.location.href = _this.href;
// or submit the form, etc.
}
});
});
答案 1 :(得分:2)
尝试如下,
$('foo').click( function(e) {
e.preventDefault(); //prevent submission
var bool = false;
$('bar').animate( function() {
//bool = something
if (bool) {
//do what you wanted to do
}
});
});