2012-05-12 42 views
5

我通過ajax返回數據來填充jquery對話框。 ajax基本上是一個可變數量行的html表。jquery對話框高度和垂直滾動條

我想讓對話框展開以顯示行,直到某個垂直尺寸(350px),此時它應該顯示一個垂直滾動條。

所以,這似乎工作正常 - 對話框根據行數正確調整大小。但是,我從來沒有得到垂直滾動條 - 所以如果我有20行,那麼我只能看到最後9.如果高度將超過350像素,我如何強制垂直滾動條?

$.ajax({ 
    type: 'POST', 
    url: 'myurl', 
    data: postdata, 
    dataType: 'json', 
    success: function (result) { 
     if (result.success && result.data) { 
      var $dialog = $('<div></div>').html(result.data).dialog({ 
       autoOpen: false, 
       title: 'History', 
       modal: true, 
       height: Math.min((result.rows * 25) + 150, 350), 
       width: 800 
      }); 
      $dialog.dialog('open'); 

     } 
     event.preventDefault(); 
    } 
}); 

回答

22

您應該爲內容div添加css屬性overflow:auto

$("<div></div>").css({height:"350px", overflow:"auto"}); 

如果你只需要垂直滾動overflow-y:autooverflow-x:hidden

+0

好吧,那可行,但爲什麼滾動條向下滾動到對話內容的底部,而不是在頂部? – JonoB

+0

滾動在兩個方向上工作。 (也許你有一些CSS與瀏覽器或jQuery控件不兼容)。看演示,請http://jsfiddle.net/xYyyd/ –

+0

該演示似乎並不完整 – JonoB

4

使用CSS的最大高度:350像素;並溢出:auto; ..應該很好

0

我不想給一個固定的px高度,所以我找到了一個解決方案,給模型下面的CSS規則。

.modal { 
    display: inline-block !important; 
    max-height: 90%; 
    overflow: auto;/* Or scroll, depending on your needs*/} 

我希望它適合你。