jQuery Mobile 페이지 변경 사항 이해
jQuery Mobile은 AJAX를 사용하여 페이지를 로드합니다. 초기 페이지는 HEAD 및 BODY 콘텐츠가 모두 DOM에 삽입된 상태로 일반적으로 로드됩니다. 그러나 후속 페이지 로드에서는 BODY 콘텐츠, 특히 data-role="page"가 포함된 첫 번째 DIV만 추출됩니다. 추가 스크립트를 포함하여 BODY에 남아 있는 모든 콘텐츠는 삭제됩니다.
스크립트 실행에 미치는 영향
이 메커니즘은 버튼이 표시될 수 있지만 클릭 이벤트가 실행되지 않는 이유를 설명합니다. . 두 번째 페이지의 삭제된 HEAD 콘텐츠에 클릭 이벤트 코드가 있었습니다.
해결책 1: 스크립트를 BODY로 이동
한 가지 해결 방법은 다음을 포함하는 SCRIPT 태그를 이동하는 것입니다. 각 후속 페이지의 BODY 콘텐츠에 JavaScript 코드를 추가하세요.
<body> <div data-role="page"> // Rest of HTML content <script> // JavaScript code </script> </div> </body>
이 솔루션은 Swift를 사용하면 HTML이 복잡해질 수 있습니다.
해결책 2: Index.html의 중앙 집중식 스크립트
보다 체계적인 접근 방식은 모든 JavaScript를 단일 파일로 통합하는 것입니다(예: index.js) jQuery Mobile이 완료된 후 초기 페이지의 HEAD에 로드합니다. 로드됨:
<head> <script src="index.js"></script> // Include your JavaScript file </head>
이 접근 방식이 뛰어난 이유는 다음과 같습니다.
해결책 3: 사용 rel="external"
페이지 변경 요소에 rel="external"을 사용하면 AJAX 로딩이 비활성화되고 기존 웹 애플리케이션 동작이 강제됩니다. 그러나 이는 Phonegap 애플리케이션에는 적합하지 않습니다.
실용적인 솔루션
가장 실용적인 솔루션은 솔루션 2를 채택하는 것입니다. 각 후속 페이지의 HEAD에 중앙 집중식 스크립트를 배치하여 페이지 전환 후 필요한 모든 JavaScript 코드를 사용할 수 있도록 하여 Phonegap의 버그 동작으로 인한 잠재적인 문제를 완화합니다.
최종 생각
성공적인 애플리케이션을 구축하려면 jQuery Mobile의 페이지 처리 메커니즘을 이해하는 것이 중요합니다. 이러한 솔루션을 따르면 스크립트가 올바르게 실행되고 잘 조직되고 유지 관리 가능한 코드베이스를 유지할 수 있습니다.
위 내용은 jQuery Mobile의 AJAX 기반 페이지 전환에서 JavaScript 스크립트가 올바르게 실행되도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!