Jquery ui 更改jquery ui对话框在打开事件中的位置

Jquery ui 更改jquery ui对话框在打开事件中的位置,jquery-ui,Jquery Ui,更改jQuery ui对话框的位置时遇到问题 我正在做的是将图像加载到打开事件中的对话框中。由于图像高度未知,对话框不再位于窗口中央。因此,我也重新定位后,加载图像,但重新定位似乎被忽略 但是,如果我在重新定位之前添加一个警报,它会很好地工作,因此很明显这里存在某种timimg问题 这方面有什么办法吗 我的代码的相关部分是: $( "#dialog-message" ).dialog({ open: function(e, ui){ $("#theImage").attr("src"

更改jQuery ui对话框的位置时遇到问题

我正在做的是将图像加载到打开事件中的对话框中。由于图像高度未知,对话框不再位于窗口中央。因此,我也重新定位后,加载图像,但重新定位似乎被忽略

但是,如果我在重新定位之前添加一个警报,它会很好地工作,因此很明显这里存在某种timimg问题

这方面有什么办法吗

我的代码的相关部分是:

$( "#dialog-message" ).dialog({
  open: function(e, ui){
    $("#theImage").attr("src","aRandomImage.jpg");
    alert(1);  // causes the next line to work properly
    $(this).dialog("option", "position", {my: "center", at: "center", of: window});
  },
  ...

在重新定位之前,您必须等待图像加载:

$( "#dialog-message" ).dialog({
  open: function(e, ui){
    var $img = $("#theImage"), mydialog = $(this);
    $img.bind('load',function(){ // bind load event
        mydialog.dialog("option", "position", {my: "center", at: "center", of: window});
    });
    $img.attr("src","aRandomImage.jpg"); // start loading
  }
见:


对于IE8更改的图像,请加载事件修复。

注意缓存的图像。某些版本的IE不会触发加载事件。见: