2012-03-21 2 views
-1

다음은 서로 링크되는 두 개의 페이지가있는 간단한 코드입니다. 결과적으로 page2 카운트 경고는 항상 DOM에 # page2 div가 하나 있다고 말합니다. 그러나 page2.html이 참조 될 때마다 화재가 발생합니다. 첫 번째 시간은 1이고 두 번째 시간은 2입니다 ...jQueryMobile의 펑키 pagecreate 문제

어떤 일이 일어나고 있는지, 그리고 page2에 대해 하나의 페이지 이벤트를 얻는 방법을 설명 할 수 있습니까? 당신은 쉽게 이런 일이 볼 수있는 크롬 디버거/개발 도구를 사용하여 동일한 DOM (페이지)에

index.html 

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    <link rel="stylesheet" href="jquery.mobile-1.0.1.min.css" /> 
    <script src="jquery-1.6.4.min.js"></script> 
    <script src="jquery.mobile-1.0.1.min.js"></script> 
</head> 
<body> 
    <div data-role="page"> 
     <div data-role="content"> 
      <h3>In Index Page</h3> 
      <a href="page2.html" data-role="button">Go To Page2</a> 
     </div> 
    </div> 
</body> 
</html> 


page2.html 

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
    <div id="page2" data-role="page"> 
     <div data-role="content"> 
      <a href="index.html" data-role="button">Back</a> 
     </div> 
     <script type="text/javascript"> 
      alert("page2 count is " + $("#page2").length); 
      $("#page2").live('pagecreate',function(event, ui) { 
       alert("in page2 on pagecreate"); 
      }); 
     </script> 
    </div> 
</body> 
</html> 

Thanks, 
-- Ed 

답변

0

JQM로드 이후 페이지.

후속 페이지에서 태그 사이에 아무 것도 끌어 오지 만 다른 모든 것은 무시합니다. 사용자 또는 다른 페이지에 JS가있을 수 있으며 여전히 페이지 2 만 가져옵니다.

정확히 무슨 일이 일어나고있는 것은 # page2에 처음으로 # page2를로드 할 때 # page2를로드하면 index.html로 이동하지만 # page2는 DOM에 남아 있다는 것입니다. 당신 고토 #의 페이지 2 다시, 그것은 당신의 JS를 실행할 때 이제 다시

$("#page2").live('pagecreate',function(event, ui) { 
     alert("in page2 on pagecreate"); 
}); 

이 다시 경고를 결합하고,이 사건 화재, 3가 발광 다음에.

는 는 는

당신은 (는) 시작시 모든 JS을로드하고 pageinit /의 pageshow 수신, 내 다른 게시물에 볼 수 있습니다 어떻게해야하고 방법 : 당신이있는 경우 https://stackoverflow.com/a/9085014/737023

을 또는 어떤 질문은 여기

+0

요청 네, 지금이 점을 이해하는 데 도움이됩니다. 내 문제를 해결하기 위해 간단히 라이브 바인딩을 page2.html에서 index.html의 헤더 스크립트로 옮겼습니다. 이제 alert에서 1 # page2 div 요소가 표시되고 page2.html이 참조 될 때마다 한 번씩 페이지가 생성됩니다. 감사! – emsieja

관련 문제