0

続行する前に function2 の結果を必要とする function1 があるとします。

しかし function2 は、Jquery ダイアログ ウィンドウを開き、ユーザーに 2 つのボタンのいずれかを選択するように求めることで、必要なものを取得します。

次に、2 つのボタンを選択すると、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 に答える