2011-04-14 5 views
0

IE는 JQuery 대화 상자가 나타날 때 스크롤 막대를 보여줍니다. 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

+0

모든 코드 샘플? –

+0

IE는 다른 Box 모델을 가지고 있습니다. 대신에 좌절하고 IE를 저주하는 대신 IE에서 해결 방법을 사용하려고합니다. 코드 및 스크린 샷을 표시하여 시작할 수 있습니다. – anu

답변

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

+0

open 이벤트를 사용해보십시오. 나는 대화 상자 객체를 항상 닫았 기 때문에 create를 사용했다. – dioslaska