jquery对话框位置不使用width:auto - 需要在打开后自动调整大小

时间:2013-09-07 01:18:06

标签: jquery

我遇到了jquery对话框的问题。我点击一个按钮打开一个模态对话框并将ajax内容加载到其中。内容的大小可以变化,我希望对话框始终位于中间位置,无论它是300px还是1200px宽。

我按照以下方式启动对话:

$(".dialog-form").dialog({
  autoOpen: false,
  modal: true,
  open: function() {
    $("#background-dim").fadeIn();
  },
  position: {my:"center top",at:"center top+40"},
  width: "auto"
});

这是我点击打开它并加载数据的按钮:

$(".dialog-opener").click(function() {
  $("#" + temp_divid).load(temp_form).dialog("open");
  // I tried putting resize function here but does not work
  alert ("test");
  return false;
});

现在我尝试在对话框开启功能中打开后立即更改对话框大小的选项,但它不起作用。我发出警报,看看发生了什么,即使我已经加载了数据并打开了对话框,它还没有显示加载的对话框,所以它不知道正确的宽度。 我做错了什么,有什么想法吗? 谢谢你的帮助:)

1 个答案:

答案 0 :(得分:0)

在这个问题的帮助下解决了它:jQuery - Dialog auto-resize on dynamic content and maintain center position

每当ajax完成加载时都会调用ajaxStop,所以当调用ajaxStop时它会调整对话框的大小并且它的工作完美!

$(document).ajaxStop(function(){
  $(".dialog").dialog({height:"auto",width:"auto"});
});