2011-11-23 3 views
1

내 포럼에서 최신 주제를 가져 와서 페이지에 표시하는 코드가 있지만, HOME 버튼을 클릭하면 해당 페이지로 다시 연결됩니다. 페이지의 내용을 표시하지 않습니다. 그러나 브라우저 새로 고침 단추를 클릭하면 작동합니다. 여기

코드입니다

JQuery와 모바일 프레임 워크를 사용하는 경우
$(document).ready(function(){ 
    $.get('getLatestTopic.cfm', function(data) { 
    $("#latest").html(data); 
    }); 
}); 
+0

브라우저 디버거를 열려고 했습니까? 어떤 오류가 발생합니까? 코드가 잘 보이므로 어딘가에 뭔가 다른 것이 있어야합니다 ... –

+0

이것이 어떤 캐싱 문제가 아닌지 확인 하시겠습니까? 'ctrl + r' 또는'ctrl + f5' –

+0

아마도'getLatestTopic.cfm'은 모든 HTML ''''태그를 가지고 있으며,'# latest'로 수정하고 있습니다. 이것은 문제의 또 다른 이유가 될 수 있습니다. –

답변

0

먼저, 당신은 당신이 아니라로드 페이지의 'pageinit'이벤트를 사용하기로되어 있다는 $ (문서) .ready (). 그 이유는 jQuery Mobile이 탐색 할 때 Ajax를 사용하여 정의 된 각 페이지의 내용을 DOM에로드하기 때문입니다. 이것은 DOM 준비 핸들러가 직접로드 된 페이지 (예 :로드하는 첫 페이지 또는 브라우저 새로 고침 버튼을 사용하여 다시로드 한 페이지)에 대해서만 실행된다는 것을 의미합니다. GET 요청은 '#myPage'이 DOM에 생성 및 삽입되었을 때 'getLatestTopic.cfm'로 전송 (한 번 발생)되어 있는지 확인합니다 이렇게

$('#myPage').live('pageinit',function(event){ 
    $.get('getLatestTopic.cfm', function(data) { 
     $("#latest").html(data); 
    }); 
}); 

. 즉, '#latest'요소가 '#myPage'안에 있으면 'getLatestTopic.cfm'에서 반환 된 데이터가 포함되어 DOM에 캐시됩니다. "myPage"를로드 할 때마다 get 요청을 실행하려면 대신 'pagebeforeshow'이벤트를 사용할 수 있습니다.

$('#myPage').live('pagebeforeshow',function(event){ 
    // This code executes every time the '#myPage' is navigated to, before it is shown. 
}); 
관련 문제