2011-04-14 83 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