2009-07-14 2 views
0

IE6 및 jQuery UI에 문제가 있습니다. 팝업 대화 상자 (중요한면, 모달)가 있는데, 사용자에게 일부 정보가있는 "예/아니오"대화 상자가 표시됩니다. 이것을 용이하게하기 위해 autoOpen = false로 대화 상자를 만든 다음 필요에 따라 $ ('popup'). show()를 호출하여 다양한 이벤트에 응답합니다. 이제는 IE6에서 (그리고 IE6에서는 말할 수있는 한) .dialog 메서드가 때때로 실패하지만 여전히 jQuery 개체를 반환합니다. 따라서 팝업을 표시하는 대신 .show() 메소드는 html 페이지에 div 컨테이너를 표시합니다.IE6에서 jQuery UI .dialog() 메서드가 자동으로 작동하지 않습니다.

이 문제의 원인은 무엇이며 어떻게 해결할 수 있습니까?

감사합니다.

$('#myDialog').dialog({ 
      autoOpen: false, 
      buttons: { 
       "No": function() 
       { 
        $(this).dialog('close'); 
        //do stuff 
       }, 
       "Yes": function() 
       { 
        $(this).dialog('close'); 
        //do stuff 
       } 
      }, 
      draggable: false, 
      modal: true, 
      resizable: false, 
      title: "Confirmation", 
      width: "500px", 
      zIndex: 2000 
     }); 

이후

$('#myDialog').dialog('open').show(); 

예쁜 표준입니다.

나는 반복적으로 생성되고 파괴 될 수있는 또 다른 대화 상자의 내부 아약스와 대화를하게 페이지를로드하고 있습니다

새로운 정보를 제공합니다. 이제, 내 페이지가 아약스로로드 될 때마다, .dialog (opts)가 대화 상자 div를 다시 인스턴스화해야합니까? 맞습니까? 나는 이것이 시나리오라는 것을 알았다.

1.) 외부 대화 상자는 ajax를 사용하여 내용을 내 콘텐츠로 바꿉니다.

2.) 내 콘텐츠가 이전에 만들어지고 자동 열기가 설정되지 않은 대화 상자를 시작합니다.

3.) 내부 대화 상자가 닫히면 외부 대화 상자가 파괴됩니다.

4.) 외부 대화 상자가 다시 열립니다. 내부 대화 상자는 더 이상 ie6에서 대화 상자로 나타나지 않습니다. 이것은 ie6에서만 발생합니다. 그냥 사용하는 하나와 (표시 할 #myDialog 항목이 발생하면서

+0

링크/스크린 캐스트는, 아니면 스크립트를 보여주는 것은 – redsquare

답변

1

비슷한 상황 이었지만 대화 상자를 다시 사용할 수 없었습니다. 매번 대화 상자를 모두 삭제하고 다시 만들어야했습니다.

+0

파괴와 재창조는 "모달"대화 상자의 동작을 엉망으로 만드는 것처럼 보입니다. 에서처럼 회색 조광 비트는 제거되지 않습니다. 아마도 닫히고 파괴 될까요? 나는 그것을 시험해 보러 갈 것이라고 생각한다. –

+0

유일한 해결책으로 보였으므로 방금이 작업을 재 시도했습니다. 두 번째 작업을 완료했습니다. 미친 충돌이 잘못된 행동이라고 생각했습니다. P. 정말 고마워요! –

6

당신은

$('#myDialog').dialog('open'); 

대신

$('#myDialog').show(); 

첫 번째 방법은 실제 대화 상자가 표시됩니다 사용하여 대화 상자를 열어야합니다 UI 대화 상자 마법 없음). show() 메소드는 핵심 jQuery 라이브러리의 일부이며 대화 상자를 호출하는 데 사용되지 않습니다.

+0

내 오류를 도움이 될 것이다. 나는 잘못했다. 저는 $ ('# blah')를 사용하고 있습니다. dialog ('open') .show(); 내용이 대화 상자가 만들어 질 때까지 숨겨집니다. –

+0

대화 상자 ('열기') 후에 show() 메소드를 실행할 필요가 없으므로 UI ​​대화 상자는 자동으로 $ ('# blah') 내용을 표시합니다. – RaYell

+0

아니요, 그렇지 않습니다. 적어도 어떤 IE 변종 아닙니다. 이 시나리오를 철저히 테스트했습니다. –

1

은 내가 bgiframe 사용 사실을 나는 등 I6, FFox,

더 많은 정보와 그들과 함께 문제를 가진 적이 없어 : http://docs.jquery.com/UI/Dialog#option-bgiframe

감사합니다.

+0

개발 초기부터 bgiframe을 사용했습니다. 주사위가 없다. –

+1

누구나 읽을 수 있습니다 : bgiframe은 ie6 및 jquery-ui에 필수적입니다. 이것은 내 문제와 관련이 없지만 bgiframe없이 두통을 겪을 것입니다. –

1

그런데 모달을 열기 전에 모달을 숨길 때 숨기기 속성 또는 CSS 클래스 또는 jquery로 style = "display : none"을 사용하고 있습니까?

내가 묻는 이유는 간단하게 style = "display : none"을 사용하면 대화 상자 ("open")를 사용하여 모달을 완벽하게 항상 표시하는 모달에 문제가 없지만 CSS 나 jquery, 나는 항상 문제가있다.

테스트 할 수 있습니다. 문제의

마커스

관련 문제