1

jQuery-ui ダイアログ ボックスの位置を変更できません。

私がやっていることは、open イベント内のダイアログ ボックスに画像をロードすることです。イメージの高さが不明なため、ダイアログ ボックスはウィンドウの中央に配置されなくなりました。そのため、画像を読み込んだ後に再配置も行っていますが、再配置は無視されているようです。

ただし、再配置の前にアラートを追加すると、正常に機能するため、ここで何らかのタイミングの問題が発生していることは明らかです。

これに対する回避策はありますか?

私のコードの関連ビットは次のとおりです。

$( "#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});
  },
  ...
4

1 に答える 1

2

再配置する前に、画像が読み込まれるまで待つ必要があります。

$( "#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
  }

参照: http://css-tricks.com/snippets/jquery/fixing-load-in-ie-for-cached-images/

IE8 のキャッシュ イメージの読み込みイベントの修正。

于 2013-01-07T10:36:07.080 に答える