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