Javascript 在jquery中自动调整大小后重新定位对话框
我有一个显示动态大小表单的对话框。我当前使用以下代码自动调整对话框的大小。我想让它做的是在resize事件发生后自动重新定位对话框。这是因为对话框调整了其宽度,我希望它在后记中保持居中Javascript 在jquery中自动调整大小后重新定位对话框,javascript,jquery,Javascript,Jquery,我有一个显示动态大小表单的对话框。我当前使用以下代码自动调整对话框的大小。我想让它做的是在resize事件发生后自动重新定位对话框。这是因为对话框调整了其宽度,我希望它在后记中保持居中 $("#form-div").dialog({ autoOpen: false, width: "auto", height: "auto", resize: "auto", modal: true }); $("#show-form-bu
$("#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插件事件的代码。也许您可以将其绑定到表单容器,并让回调函数进行大小调整: