在继续执行其他函数命令的其余部分之前,等待一个函数返回一个值

mhe*_*ers 1 javascript ajax jquery return callback

我将jquery中的一些动画与一些ajax加载相结合 - 从函数A,我希望能够调用函数B淡出当前内容,并且一旦完成该动画,返回运行函数A中的其余代码. 这可能吗?我想象的是这样的:

function buttonClicked(){
  if(sectionHidden != true){
    hideSection($sectionRef);
  }
  //RUN THE FOLLOWING AFTER HIDE SECTION HAS FINISHED (FUNCTION B)
  loadSection();
}

function hideSection($sectionRef){
  $sectionRef.fadeTo(500,0,function(){
    return someValue;
  });
}
Run Code Online (Sandbox Code Playgroud)

由于我的代码中有一些其他复杂性(多个函数调用hideSection),我无法从hideSection调用loadSection.

Cla*_*diu 5

.fadeTo()获取一个回调参数,该参数在淡出结束时调用.您所要做的就是为它提供loadSection功能.以机智:

function buttonClicked() {
    if (!sectionHidden) {
        hideSection($sectionRef, loadSection);
    }
    else {
        loadSection();
    }
}

function hideSection($sectionRef, doneCallback) {
    $sectionRef.fadeTo(500, 0, doneCallback);
}
Run Code Online (Sandbox Code Playgroud)

如果您不想在hideSection()从代码的其他部分调用后加载该部分:

function someStuff() {
    //stuff...
   hideSection($superRef); //won't call loadSection()
   //more stuff
}
Run Code Online (Sandbox Code Playgroud)