2013-01-07 56 views
1

我無法更改jQuery-ui對話框的位置。在打開的事件中更改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}); 
    }, 
    ... 

回答

2

你要等待圖像repositionning之前加載:

$("#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 chached圖片加載事件修復。

+0

輝煌 - 謝謝 – Graham

+0

小心緩存的圖像。一些版本的IE不會觸發它們的加載事件。請參閱:http://css-tricks.com/snippets/jquery/fixing-load-in-ie-for-cached-images/ –