好的,这才是我所知道的:
function validate() {
var validated = true;
$('.alert-infobox').fadeIn("fast", function(){
$('input.offer').each(function(){
// do ajax code with async = false for each input for validate if something happens
validate = false;
});
});
}
if(validated){
//do something
}
return validated;
现在我要做的是淡入和淡入运行后为每个输入ajax调用验证服务器端的输入,现在变量验证总是保持为真,我相信回调中的指令在fadeIn在不同的范围内,有没有办法在回调函数外部访问变量?
对不起,这里有点新鲜事:)
由于
答案 0 :(得分:1)
在validate
函数中,它的范围不同。回调将在你的if语句之后运行。
尝试以下调试代码:
function validate() {
var validated = true;
console.log("Before fadeIn");
$('.alert-infobox').fadeIn("fast", function(){
console.log("Callback!");
$('input.offer').each(function(){
// do ajax code with async = false for each input for validate if something happens
validated = false;
});
});
console.log("After fadeIn");
}
validate();
您将按以下顺序获得输出:
Before fadeIn
After fadeIn
Callback!
为什么呢?因为回调是在动画完成后调用的,大约在200多毫秒之后。