Javascript 对话框打开前的JQuery UI

Javascript 对话框打开前的JQuery UI,javascript,jquery,jquery-ui,dialog,dwr,Javascript,Jquery,Jquery Ui,Dialog,Dwr,我有一个非常简单的对话框 <script> $(function() { $( "#openDialog").on("click", function(){ $( "#dialog-modal" ).dialog({ height: 300, width: 600, modal: true, buttons: { Cancel: function() {

我有一个非常简单的对话框

<script>
$(function() {
   $( "#openDialog").on("click", function(){ 
       $( "#dialog-modal" ).dialog({
          height: 300,
          width: 600,
          modal: true,
          buttons: {
              Cancel: function() {
              $( this ).dialog( "close" );
              }
              }
        });
       $( "#dialog-modal" ).show();
    });
 });
</script>

$(函数(){
$(“#openDialog”)。在(“单击”,函数(){
$(“#对话框模式”).dialog({
身高:300,
宽度:600,
莫代尔:是的,
按钮:{
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
$(“#对话框模式”).show();
});
});
我正在用一个HTML表填充这个对话框,该表包含从Java方法传入的信息。我可以在加载页面时使其工作,但我希望在用户打开对话框时加载信息

我已经检查了jQueryUI的API,对话框有beforeClose函数,但没有beforeOpen函数。这样做的最佳方式是什么?当用户打开对话框(在.show上)时,我尝试了回调,但无法使其正常工作

<script>
$(function() {
   $( "#openDialog").on("click", function(){ 
       $( "#dialog-modal" ).dialog({
          height: 300,
          width: 600,
          modal: true,
          buttons: {
              Cancel: function() {
              $( this ).dialog( "close" );
              }
              }
        });
       $( "#dialog-modal" ).show(function(
            JavaClass.javaMethod();
          ));
    });
 });
</script>

$(函数(){
$(“#openDialog”)。在(“单击”,函数(){
$(“#对话框模式”).dialog({
身高:300,
宽度:600,
莫代尔:是的,
按钮:{
取消:函数(){
$(此).dialog(“关闭”);
}
}
});
$(“#对话框模式”).show(函数(
JavaClass.javaMethod();
));
});
});
为什么不

<script>
$(function() {
   $( "#openDialog").on("click", function(){ 
       if (shouldOpenDialog()){ // Do what you must do here 
         $( "#dialog-modal" ).dialog({
            height: 300,
            width: 600,
            modal: true,
            buttons: {
                Cancel: function() {
                $( this ).dialog( "close" );
                }
                }
          });
         $( "#dialog-modal" ).show();
       }
    });
 });
</script>

尝试打开事件:当对话框打开时会触发它。在对话框打开之前,我需要Java调用,我不希望在Java调用完成之前打开对话框检查是否有帮助。嘿@HipArray,我的回答有用吗?
<script>
$(function() {
   $( "#openDialog").on("click", function(){ 
       if (shouldOpenDialog(function() { // Do what you must do here 
         $( "#dialog-modal" ).dialog({
            height: 300,
            width: 600,
            modal: true,
            buttons: {
                Cancel: function() {
                $( this ).dialog( "close" );
                }
                }
          });
         $( "#dialog-modal" ).show();
       });
    });
 });
</script>
function shouldOpenDialog(callback) {
   asyncCall(onComplete: function(o){
       if (o.ok) 
          callback();
   });
}