2014-01-24 1 views
0

jquerymobile (1.4.0)을 사용하고 있습니다. 재설정 팝업을 만드는 자바 스크립트 함수를 호출하는 단일 HTML 파일이 있습니다. 재설정 팝업에는 두 개의 버튼 (예, 아니오)이 있으며, 두 경우 모두 다른 조작을 수행 한 후에 팝업을 닫아야합니다. 닫기 버튼을 누르면jquery mobile을 사용하여 팝업을 닫으려고 할 때 캐치 오류가 발생했습니다.

, 나는 다음과 같은 오류가 나타납니다. 내가 호출해야합니다 제안 ("MyPopup을")을 볼 수 있었다 유래 및 다른 사이트를 검색에서

Uncaught Error: cannot call methods on popup prior to initialization; attempted to call method 'close'

을하기 전에 팝업() 내 내가하고있는 닫는 작업. 나는 ("# theResetPopup")뿐만 아니라 ("#lnkResetPopup") 호출하려고 시도했지만 둘 다 작동하지 않습니다. $ (this) .popup.close();를 호출합니다. (후 ($ this.popup())가 '더'버튼은 실제 버튼이 사라 원인에서 결과가 없습니다에서.

$("#theResetPopup").popup(); 
$("#theResetPopup").popup("close"); 

팝업이 사라 않습니다 나는이 (가) btnResetNo 처리기 내에서 다음과 같은 경우 나는 문제가 나는 lnkPopup 방법을 사용하고 있다는 사실과 함께 할 생각하지만, 그것을 해결하는 방법에 관해서는 내가 손해를보고있어

Uncaught HierarchyRequestError: Failed to execute 'appendChild' on 'Node': The new child element contains the parent.

:(

:하지만 나는 다음과 같은 오류가 발생합니다.

어떤 도움이라도 대단히 감사합니다, 미리 감사드립니다!

내 .html 파일에서.

<a id='lnkResetPopup' href="#theResetPopup" data-rel="dialog" data-transition="flip" data-role="popup" data-position-to="window" style='display:none;'></a> 

<div data-role="page" id="theResetPopup" data-role="popup"> 
    <div data-role="header" id="resetPopupTitle"> 
     Reset 
    </div> 

    All progress will be lost. Are you sure? 

    <center> 
    <button id="btnResetYes" type="submit" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-inline ui-icon-check ui-btn-icon-notext">Yes</button> 
    <button id="btnResetNo" type="submit" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-inline ui-icon-delete ui-btn-icon-notext">No</button> 
    </center> 

    <script> 
    $("#btnResetYes").click(function() { 
     gameClass.resetGame(); 
     gameClass.closeResetPopup(); 
    }); 

    $("#btnResetNo").click(function() { 
     gameClass.closeResetPopup(); 
     //$("#theResetPopup").popup(); 
     //$("#theResetPopup").popup("close"); 
    }); 
    </script> 
</div> 

내 JavaScript 파일에서.

showResetPopup:function() 
{ 
    $("#lnkResetPopup").popup(); 
    $("#lnkResetPopup").popup('open'); 

    $("#resetPopupTitle").html('<center>Reset?</center>'); 
}, 

closeResetPopup:function() 
{ 
    $("#lnkResetPopup").popup(); 
    $("#lnkResetPopup").popup('close'); 
}, 

답변

1

대화 및 팝업 마크 업을 혼합하는 것 같습니다.

<div data-role="page" id="my_view"> 
    <div data-role="header"> 
     <h1>My page</h1> 
    </div> 
    <div role="main" class="ui-content"> 

     <a id="lnkResetPopup" href="#theResetPopup" data-transition="flip" data-rel="popup" class="ui-btn">Reset </a> 

    </div> 

    <div id="theResetPopup" data-role="popup" data-position-to="window" data-dismissible="false"> 
     <div data-role="header" id="resetPopupTitle">Reset</div>All progress will be lost. Are you sure? 
     <center> 
      <button id="btnResetYes" type="submit" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-inline ui-icon-check ui-btn-icon-notext">Yes</button> 
      <button id="btnResetNo" type="submit" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-inline ui-icon-delete ui-btn-icon-notext">No</button> 
     </center> 
    </div> 
</div> 

코드에서 닫으려면 당신은 그럼 그냥 전화 : 팝업 DIV 페이지 역할을 상실하고, 데이터 위치에 소요하면서

Here is a working DEMO

링크는 팝업의 데이터 확인해 소요 $("#theResetPopup").popup('close'); 나는 또한 마크 업에서 코드를 가져 와서 다른 모든 자바 스크립트와 함께 페이지 하단에 넣었다.

$(document).on("click", "#btnResetYes", function() { 
    $("#theResetPopup").popup('close'); 
}); 
$(document).on("click", "#btnResetNo", function() { 
    $("#theResetPopup").popup('close'); 
}); 
+0

안녕하세요. 이 문제를 해결하고 피들을 해결할 시간을내어 주셔서 감사합니다. 정말로 감사드립니다. 나는 아직 평판이 나지 않았기 때문에 당신의 대답을 투표 할 수는 없지만 나는 그것을 받아 들였습니다. 대답에 대한 크레딧을주기 위해 내가해야 할 일이 있다면 알려주십시오. – greysqrl

+0

답변을 수락하는 것은 충분합니다. 나는 도움이 될 수있어 기쁘다. – ezanker

관련 문제