2011-04-14 88 views
0

當彈出JQuery對話框時,IE顯示滾動條。 FF不顯示滾動條。 IE CSS有什麼問題?IE中的JQuery彈出問題

<div id="disablebg" style="display: none;overflow:hidden;"> 
       <uc1:CreateInqGeneral ID="CreateInqGeneral1" runat="server" /> 
      </div> 

function ShowDialog() { 

     $("#disablebg").dialog({ 
      resizable: false, 
      modal: true, 
      width: "550px" 
     }); 
    } 
+0

你在問這個錯誤。 「X有什麼問題」在這裏幾乎總是一個問題的錯誤開始。相反,「我做錯了什麼讓X顯示我的對話框這樣」顯示一些代碼,顯示一些圖片。我已經看到Fx也在對話框中顯示滾動條,這些對話框的div對於容器來說太寬了 – mplungjan 2011-04-14 06:07:54

+0

任何代碼示例? – 2011-04-14 06:07:59

+0

IE有不同的Box模型。而不是沮喪和詛咒IE嘗試使用它的解決方法。您可以從向我們展示代碼和屏幕截圖開始 – anu 2011-04-14 06:12:26

回答

1

我使用類似的東西來避免這個問題。您可以輕鬆修改它以僅隱藏水平滾動條。

function hideScrollBars() { 
    var top = $('html').scrollTop(); 
    var left = $('html').scrollLeft(); 
    $('html').css('overflow', 'hidden'); 
    $('html').scrollTop(top); 
    $('html').scrollLeft(left); 
} 

function showScrollBars() { 
    var top = $('html').scrollTop(); 
    var left = $('html').scrollLeft(); 
    $('html').css('overflow', 'auto'); 
    $('html').scrollTop(top); 
    $('html').scrollLeft(left); 
} 

$.extend($.ui.dialog.prototype.options, { 
    bgiframe: true, 
    resizable: false, 
    modal: true, 
    open: function() { hideScrollBars(); }, 
    close: function() { showScrollBars(); } 
}); 

注意:通過這種方式,我爲所有對話框實例設置了全局打開和關閉事件。如果您覆蓋特定實例上的打開/關閉事件,則必須調用hideScrollBars/showScrollBars函數。

+0

感謝您的回覆。這個技巧工作正常,當我第一次打開彈出,但第二次創建事件不會被解僱,而反過來又不會調用hideScrollBars()函數。我怎樣才能做到這一點? – Tuscan 2011-04-14 06:52:06

+0

嘗試使用打開的事件。我使用了創建,因爲我總是將我的對話對象置於關閉狀態。 – dioslaska 2011-04-14 06:58:24