0

假设我有 function1 需要 function2 的结果才能继续。

但是 function2 通过触发一个 Jquery 对话窗口打开并提示用户选择两个按钮之一来获得它需要的东西。

然后选择这两个按钮会导致 function2 完成其工作并将其传递给 function1。

如何将在对话框窗口中选择时按钮提供的值返回给 function2。

请参阅下面的代码。

$('#choice-dialog').dialog({
   autoOpen: false,
   resizable: false,
   height:140,
   modal: true,
   buttons: {
      "Proceed": function() {
         $( this ).dialog( "close" );
         true //the value to be sent to function2;
      },
      Cancel: function() {
         $( this ).dialog( "close" );
         false //the value to be sent to function2;
      }
   }
});

function function1(){
   if(function2(variable)===true){
      return true
   }
}

var function2 = function(variable){
   if(idIsUsed){
      $("#choice-dialog").dialog("open");
      return **choice made by user via dialog**;
   }else{
      return true;
   }
}
4

1 回答 1

0

你不能这样做。最好重构代码,以便对话框回调使用trueor调用另一个函数false

$('#choice-dialog').dialog({
   autoOpen: false,
   resizable: false,
   height:140,
   modal: true,
   buttons: {
      "Proceed": function() {
         $( this ).dialog( "close" );
         otherFunction(true);
      },
      Cancel: function() {
         $( this ).dialog( "close" );
         otherFunction(false);
      }
   }
});

var function2 = function(variable){
   if(idIsUsed){
      $j("#choice-dialog").dialog("open"); 
   } else {
      otherFunction(true);
   }
}
于 2013-11-06T20:36:15.027 回答