쿼리 모바일을 사용하여 기존 사이트의 모바일 버전을 만들고 있습니다. 이 사이트는 www 버전에 잘 작동하는 확립 된 마크 업과 함께 수백 페이지가 넘습니다. 문제는 #useername 또는 #map 또는 #photo와 같은 모든 페이지에 동일한 요소 ID의 인스턴스가 많다는 것입니다. 이것은 각 페이지가 독립적으로로드되므로 충돌이 없으므로 www에서 잘됩니다. JQM에서는 모든 페이지가 어떻게 든 캐시되고 코드가 이전 페이지를 참조하는 것처럼 보입니다. 예를 들어 :Jquery Mobile을 사용하여 사이트의 다른 페이지에서 동일한 ID와 충돌합니다.
Page1.html
는<div id="commonIdOnEveryPage">Page 1</div>
<a href="page2.html">Link</a>
<script>
alert($("#commonIdOnEveryPage").html());
</script>
Page2.html
<div id="commonIdOnEveryPage">Page 2</div>
<script>
alert($("#commonIdOnEveryPage").html());
</script>
2 페이지로 이동하기 1 페이지에서 링크를 클릭하면, 경고는 여전히 "페이지 1"을 보여줍니다.
이 예에서는 두 번째 페이지의 id를 쉽게 변경할 수 있지만 실제 사이트에서는 동일한 ID가 사용되고 JS가 수천 줄의 linea 길이 인 다른 페이지에 수백 개의 위치가 있습니다. 확실히 JQM을 이와 호환되도록 만드는 방법이 있습니다.
문제는 2 개 이상의 페이지가 JQuery와 모바일의 DOM에 동시에 존재한다. 공통 ID를 사용하지 말고 클래스를 만들고이를 활성 페이지에서 선택하십시오. –
불행히도, 모든 ID를 변경하는 것보다 jqm을 사용하지 않는 것이 더 좋은 해결책입니다. 이것은 완벽하게 작동하는 복잡한 기존 사이트입니다. 또한 profile.php? id = 1과 같은 동적 페이지에는 #screenname이 있고 profile.php? id = 2에 대한 링크는 #screenname도있는 ID가 있습니다. –
이를 염두에두고 해결책을 찾아보십시오 : –