2013-07-09 3 views
0

JQuery Mobile 사이트의 경우 페이지 탐색에로드 할 새 이미지가 필요합니다. 이미지는 홈 화면에만 표시됩니다.JQuery Mobile, 교대 이미지가 "뒤로"버튼을 깨뜨림

예를 들어 image_A.png가 맨 위 배너 인 m.smellyeggs.com을로드합니다. 메뉴 항목 1을 선택한 다음 뒤로를 누르면 image_B.jpg가 상단 배너로 표시됩니다.

cookies을 사용하여 작동시킬 수있었습니다. 잠재적 인 이미지 배열을 얻은 다음 쿠키를 사용하여 배열을 탐색합니다. 이는 페이지 새로 고침에 적용되지만 페이지 (예 : href = "/"또는 모바일 또는 브라우저에서 '뒤로'사용)의 캐시로드는 자바 스크립트를 호출하지 않습니다. 따라서 이미지는 실제로 대체되지 않습니다.

var images = new Array(); 
<% banner_mobile_uris(controller.conference).each do |url| %> 
    images.push("<%= url %>"); 
<% end %> 

inc_banner_cookie(); 
load_banner(); 

이 문제를 해결하기 위해 이미지를 삭제하는 다음 코드를 사용하여 홈페이지를로드 할 때마다 이미지를 강제로 새로 고칩니다.

$('a').live('click', function(ev){ 
    var banner = $('#m_banner').load(htm_file); 
    banner.empty().remove(); 
}); 

이 코드는 발생 이후의 페이지 탐색에서 "뒤로"버튼을 제거합니다.

글쎄 그건 용납 할 수 없네! 더 나은 접근법에 대한 조언이 있습니까? 절대적으로 필요한 경우가 아니면 내 "뒤로"버튼을 구현하지 않을 것입니다.

읽어 주셔서 감사합니다.

+0

jquery 모바일 HTML의 전체 코드를 게시하십시오. 귀하의 구조를 확인해야합니다. – abdu

답변

1

대답은

$(document).on('pageinit', function(){ 
    inc_banner_cookie(); 
    load_banner(); 
}); 

이것은 뒤로 버튼을 사용하지 않습니다 ... 성공 JQuery와 모바일 페이지가로드를 감지하는 pageinit을 사용하여에있다. 모든 유형의 페이지 탐색에서 이미지 재로드가 발생합니다. 거의 모든 유형 ...

AJAX 리디렉션이 발생하면이 appraoch가 깨지기 쉽고 후속 페이지 작업은 작동하지 않을 수 있습니다. my question concerning this issue.