2011-10-20 49 views
2

我有一個用maxWidth定義的jqueryui對話框。JQueryUI對話框最大寬度不夠用

$("#myDialog").dialog({ 
     autoOpen: false, 
     width: 'auto', 
     maxWidth: 1000, 
     height: 'auto', 
     position: [250, 50], 
     close: function() { 
      $("#myViewer").empty(); 
      someStuff(); 
     } 
    }); 

當我用調整大小手柄調整窗體大小時,maxWidth的工作原理如下。但表單包含製表符(兩行結果)和其他嘗試佔用給定空間的所有內容。

當我打開表單時,它觸及正確的瀏覽器邊緣。當我用鼠標向左移動窗口時,對話框會自動調整大小,因爲右側有更多可用空間。
但是,它不會停在maxWidth。

如果我在大於maxWidth時抓住大小調整手柄,它將調整回maxWidth。

此外,對話框的標題欄不是對話框的寬度,除非通過更改視口大小或使用調整大小手柄調整大小。

這裏有一個例子:http://jsfiddle.net/CarlR/PvE3P/22/

我希望描述是非常明顯的。你可以在jsfiddle上試試。問題是第一次顯示對話框時。
(我使用BTW谷歌瀏覽器)

+0

你能發佈一個鏈接到它,或一些HTML? :) –

+0

@MarcoJohannesen完成。 :) –

回答

4

這裏是什麼,我想的jsfiddle您正在尋找http://jsfiddle.net/PvE3P/41/。我綁定到$(window).resize()並根據窗口寬度動態更新對話框寬度。我希望這有幫助!

編輯:

我已經更新的jsfiddle工作多一點的無縫連接。 http://jsfiddle.net/PvE3P/42/

+0

簡單,美麗,非常好。謝謝! –

1

可以在jQuery代碼做一些判斷,像這樣

$("#showDialog").click(function(){ 
    $("#myDialog").dialog("open"); 
    var width = $(".ui-dialog").width(); 
    if(width>400){ 
     $(".ui-dialog").css({'width':'400px'}); 
     //fixed if width > 400px, defined width always as 400px 
    } 
}); 

參見: http://jsfiddle.net/PvE3P/23/

+0

當我通過標題欄拖動窗體時它不起作用。 –

+0

@Carl R,你的目的是想要什麼?最小寬度是多少?在'http:// jsfiddle.net/PvE3P/25 /'中看到更新內容。 – Giberno

+0

看起來很有希望......我會在這裏運行一些測試。 :) –

1
.ui-dialog { 
    ... 
    max-width: 400px; 
}