2010-07-27 4 views
1

jQuery Plugin jqModal을 사용하고 있습니다.jqModal jQuery Plugin - 모달 팝업에서 타임 아웃을 설정하는 방법?

새로운 기능이므로 아직 사용법을 배우고 있습니다.

내가하려는 것은 3 초 동안 팝업을 표시 한 다음 자동으로 닫는 것입니다.

  1. 내 페이지가로드 :

    기본적으로, 여기에 내가 원하는 이벤트의 흐름이다.

  2. "MySite ..에 연결 중"이라는 모달 팝업을 표시하십시오.
  3. (3 초 후) 모달 팝업이 자동으로 닫힙니다.
  4. 페이지 새로 고침 (window.location.reload());

여기에 내가 지금까지 (훨씬 아니다)이 작업은 다음과 같습니다

HTML :

<div id="jqPopupModal" style="display: none;">Connecting to My Site...</div> 

JS :

window.onload = function() { 
    showPopup(); 
    window.location.reload(); 
} 

function showPopup() { 
    $('#jqPopupModal').jqm({ modal: true }); 
    $('#jqPopupModal').jqmShow(); 
} 

내가 전달할 수있는 몇 가지 인수가 있습니다. jqmShow() 함수를 사용하여 창에 대한 시간 초과를 설정 하시겠습니까? 아니면 내가 onShow 콜백에 후크해야하고 간단한 setTimeout합니까?

2 단계와 4 단계가 비동기 적으로 발생하면 좋은 결과를 얻을 수 있습니다. 즉, jQuery 팝업이 표시되는 동안 페이지가 새로 고침됩니다.

아이디어가 있으십니까?

편집 :

좋아 그래서 내가 아니라 window.location.reload()와, 열림/닫힘 지연 작업 있어요. 퍼팅을하면 지연이 전혀 발생하지 않습니다. 나는 팝업 동안 부모 윈도우를 다시로드 할 window.location.reload()을 기대했다

function fbcPopupOnShow() {{ 
       $('#fbcModalPopup').show(); 
       window.location.reload(); 
       window.setTimeout(new function() {{ 
        $('#fbcModalPopup').jqmHide(); 

       }}, 1000); 
      }} 

      function showFacebookConnectPopup() {{ 
       $('#fbcModalPopup').jqm({{ 
        modal: true, 
        onShow: fbcPopupOnShow 
       }}); 

       $('#fbcModalPopup').jqmShow(); 
      }} 

하지 하나 또는 다른, 표시되고 :

여기 내 코드입니다.

편집 2 :

은 캔트 정말 jqModal 팝업 밤은 (새로운 윈도우가 양산되지 않습니다 즉)는 "팝업"으로, 비동기 적으로 다시로드 및 팝업을 알아 냈어. 그것은 단지 숨겨진 DIV입니다.

따라서 방금 창을 숨긴 후 다시로드하도록 코드를 변경했습니다.

답변

2

지연 후 (jQuery 1.4 이상 필요) onShow 이벤트를 사용하여 닫으십시오. 그렇지 않으면 javascript 시간 초과를 사용하여 팝업을 닫을 수 있습니다.

var autoClose = function(hash) { $('#jqPopupModal').delay(3000).jqmHide(); }; 
$('#jqPopupModal').jqm({ modal: true, onShow:autoClose}); 
+0

네, 저것은 노력하고 있습니다. 그것은 작동합니다 (열린 창, 닫기), 등하지만 그것을 window.location.reload()와 함께 작동 시키려고 노력하면 문제가 발생합니다. 업데이트 된 질문. – RPM1984