2012-04-04 2 views
-3

첫로드 후 페이지를 새로 고치지 않으면 js가 작동하지 않고 div의 background-img도 표시되지 않습니다. 코드 : 나는 데이터 아약스 = '거짓',하지만 AJAX가 켜져있을 때처음로드 한 후 페이지를 새로 고치지 않으면 js가 작동하지 않습니다. 이유가 무엇입니까?

+6

우리는 data-ajax = 'false'로 설정 한 후 ... –

+0

js가 활성화 된 코드 예제가 필요할 것입니다. $ ("..."). live (" pageinit ", function() ... 및 $ (document) .ready (function() ..), 여전히 작동하지 않습니다. – xiaoyi

+0

일부 codeeeeeeeee 넣기 – ghostCoder

답변

0

JQM 전체 페이지를로드하지 않는 전환을 원하는 설정하면 <a data-role="button" data-icon="plue" href="register.jsp" data-transition="pop">register</a> JS와 CSS를 성공적으로로드 할 수 있습니다, 그것은 가져 페이지에서 머리 태그의 내용을 제거합니다. 그들의 논리는 이러한 것들이 응용 프로그램 전체에서 일관되게 유지되므로 다운로드 횟수가 적고로드 시간이 짧아지기 때문에 HTML을 구문 분석하고 새 페이지로 삽입한다는 것입니다. 따라서 해시 태그 탐색도 얻게됩니다.

jQM은 AJAX가 실행중인 경우 페이지 내에있는 JS도 실행하지 않습니다. 따라서 onClick="SomeJS();"과 같은 작업을 수행하면 실행되지 않습니다. 어쨌든 일반적으로 jQuery를 사용해서는 안된다.

그 해결하기 위해 모든 페이지에없는 요소 JS 오류를 방지하기 위해, 나는 이런 일을 시작했습니다, 래퍼 DIV 또는 제를 넣어

그냥 body 태그 후

(이후 모든 스마트 폰은 id 또는 고유 한 클래스로 HTML5를 꽤 잘 읽음) data-role = "page"속성을 추가하십시오.

<body> 
<div id="page1" data-role="page"> 
... page content ... 
</div> 
</body> 

모든 JS를 하나의 파일로 유지하거나 모든 페이지의 모든 파일을 참조하십시오. 실행해야하는 페이지 스크립트가 있으면 다음과 같이 포장하십시오.

$('#page1').live('pageshow', function() { 
//do what you need to do 
}); 

잘하면 도움이됩니다.

+0

오, jQM도 body 태그를 무시하므로 특수 ID/데이터 페이지 속성을 거기에 적용하여 잘 작동하도록하십시오. – Joshua

+0

고맙습니다. 대답은 나에게 매우 도움이됩니다 ~ – xiaoyi

관련 문제