2013-02-27 3 views
2

내 jQuery Mobile 사이트에 문제가 있습니다. 하나의 index.html 파일 내에 3 개의 별도 페이지가 있습니다. 모두 성공 이벤트에서 자신의 팝업을로드합니다. 이 위대한 작품을jQuery Mobile - 여러 팝업 문제

$("#myPopupDiv").popup("open"); 

후속 페이지를 방문 할 때, 사용자가 페이지를 방문하고 팝업을 열었다 그러나 일단 그 페이지의 팝업 다음 그러나 (화재하지 마십시오처럼 jQuery를 통해 팝업을로드 해당 페이지의 팝업은 세션 기간 동안 계속 작동하지만 모든 코드가 페이지에서 작동하며 Chrome 개발자 도구에는 콘솔 오류가 없습니다.

ID가 중복되지 않아 코드를 팝업으로 실행해야하는 console.log를 넣으려고 시도했습니다. 제대로 작동하므로 코드를 우연히 팝업을 우회합니다.

이전에이 문제가 발생 했습니까? 사전에

감사합니다.

간체 코드 예제는 사용자가 페이지 하나를 선택하고 팝업을 열 경우

<!-- PAGE 1 --> 
<div data-role="page" id="page-1"> 
    <div data-role="content"> 
     <!-- BUTTON: loadPopup-1 --> 
     <div id="popup-1" data-role="popup"> 
     <!-- Popup contents --> 
     </div><!-- /popup --> 
    </div><!-- /content --> 
</div><!-- /page --> 

<!-- PAGE 2 --> 
<div data-role="page" id="page-2"> 
    <div data-role="content"> 
     <!-- BUTTON: loadPopup-2 --> 
     <div id="popup-2" data-role="popup"> 
     <!-- Popup contents --> 
     </div><!-- /popup --> 
    </div><!-- /content --> 
</div><!-- /page --> 

<!-- JS --> 
function loadPopup-1() { 
    $("#popup-1").popup("open"); 
} 

function loadPopup-2() { 
    $("#popup-2").popup("open"); 
} 

그래서, 그 팝업이 2가되지 않으며, 그 반대하지만 페이지를 계속 작동합니다.

+0

일부 코드가 필요합니다 .... – BLSully

+0

일부 코드로 업데이트되었습니다. – Martin

+1

'loadPopup - *()'함수를 언제 호출합니까? –

답변

3

더 많은 코드를 표시해야하므로 문제를 이해할 수 있습니다 ... 팝업 기능의 트리거는 무엇입니까?

function ShowPopUp(PopupText){ 

    // check if popup element already exists 
    if($("#PopUp").length > 0) 
     $("#PopUp").remove(); 

    // get active (current) page ID 
    var id = $.mobile.activePage.attr("id"); 

    // add popup element to the active page 
    $("#" + id).append("<div data-role='popup' id='PopUp' class='ui-content' data-position-to='window' data-overlay-theme='a'></div>"); 

    // add your text to the popup 
    $("#PopUp").html(PopupText); 

    // "refresh" the page with new popup elements 
    $("#" + id).trigger('create'); 

    // open the popup 
    $("#PopUp").popup("open"); 

} 
4

그것을 :

샘플 코드 ...

가 활성화 페이지에 일반 팝업을 생성 한 다음이 열립니다 하나 개의 함수를 만듭니다 그때까지 , 나는 당신이 다른 일을하는 것이 좋습니다 한 번에 하나 이상의 JQM 팝업을 열어 둘 수는 없습니다.

doco : 참고 : 팝업 체인 연결 허용 안 함 프레임 워크는 현재 팝업 체인을 지원하지 않으므로 한 팝업에서 다른 팝업으로 링크를 포함 할 수 없습니다. 팝업 내에서 data-rel = "popup"을 가진 모든 링크는 아무 것도하지 않습니다.

이것은 또한 팝업을 사용하여 구현되기 때문에 사용자 정의 선택 메뉴가 팝업 내에서 작동하지 않음을 의미합니다. 팝업 메뉴에 선택 메뉴를 배치하면 data-native-menu = "false"를 지정하더라도 기본 선택 메뉴로 렌더링됩니다.

1

https://github.com/serbanghita/jQM-dynamic-popup 시도 - 나는 당신의 기능에 2012

부터 이미 생산에 캡슐화 $.dynamic_popup(' ... HTML code ... ');을이 사용하고 있습니다. 원하는만큼 jQuery Mobile 팝업을 트리거 할 수 있습니다.