Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery中自动调整大小后重新定位对话框_Javascript_Jquery - Fatal编程技术网

Javascript 在jquery中自动调整大小后重新定位对话框

Javascript 在jquery中自动调整大小后重新定位对话框,javascript,jquery,Javascript,Jquery,我有一个显示动态大小表单的对话框。我当前使用以下代码自动调整对话框的大小。我想让它做的是在resize事件发生后自动重新定位对话框。这是因为对话框调整了其宽度,我希望它在后记中保持居中 $("#form-div").dialog({ autoOpen: false, width: "auto", height: "auto", resize: "auto", modal: true }); $("#show-form-bu

我有一个显示动态大小表单的对话框。我当前使用以下代码自动调整对话框的大小。我想让它做的是在resize事件发生后自动重新定位对话框。这是因为对话框调整了其宽度,我希望它在后记中保持居中

  $("#form-div").dialog({
      autoOpen: false,
      width: "auto",
      height: "auto",
      resize: "auto",
      modal: true
  });

  $("#show-form-button").click(function() {
      $("#form-div").dialog("open");
  });
编辑:

我只是想说清楚


该对话框将显示一个窗体。显示表单后,可能会向表单中添加其他字段,使其不再适合原始对话框。“resize:'auto'”选项会自动处理此问题并调整对话框的大小。我希望对话框在自动调整大小后居中。

根据文档,调整大小完成后会有一个resizeStop钩子。因此,您应该能够这样做:

$("#form-div").dialog({
      autoOpen: false,
      width: "auto",
      height: "auto",
      resize: "auto",
      modal: true,
      resizeStop: function(event, ui) {
        jQuery(this).dialog('option','position','center');
      }
 });

 $("#show-form-button").click(function() {
     $("#form-div").dialog("open");
 });

我已经试过了,当我手动调整对话框的大小时,它会起作用,但如果我让它自动调整大小,它就不会起作用。我提出的最佳解决方案是观察表单完成大小调整,然后调用$(“#form div”).dialog('option','position','center')。如果“调整大小”设置为“自动”,则通过对话框的设置自动重新定位似乎不可行,因为实际上没有触发任何事件。@Curtor:您能解释一下是什么导致对话框调整大小吗?是否自动调整大小以包含最初创建后添加到其中的内容?是的,这是正确的。该对话框将显示一个窗体。显示表单后,可能会向表单中添加其他字段,使其不再适合原始对话框。“resize:'auto'”选项会自动处理此问题并调整对话框大小,但不会触发任何事件。@Curtor:此线程包含当元素内容更改时触发的jQuery插件事件的代码。也许您可以将其绑定到表单容器,并让回调函数进行大小调整: