2012-11-28 2 views
0

모든 페이지 맨 아래에 NavBar이라는 작은 jQuery 모바일 사이트가 있습니다. 바에는 사이트 전체에서 작동해야하는 버튼이 있습니다.jQuery mobile - 페이지 이름을 모른 채 pagebeforeshow를 강제 실행합니다.

페이지 이름/ID를 몰라도 pagebeforeshow 이벤트 (현재 열어 본 페이지)를 강제로 만드는 방법은 무엇입니까?

일반적인 기능이 있습니까? 아니면 페이지의 name/id을 먼저 가져와 pagebeforeshow으로 전화해야합니까? (pagebeforeshow가 실행되지 않습니다)


UPDATE

다음은 나에게 현재 페이지 ID를 얻을 수 있지만, trigger("refresh")는 솔기가 조치를 트리거하지 않습니다.

var CurrentPageID = $.mobile.activePage[0].id; 
$("#" + CurrentPageID).trigger("refresh"); 

의견이 있으십니까?

답변

3

Here's 실시 예. 네비게이션 바에서 클릭 한 상태

이 페이지를 다시로드를 시작합니다 :

$('div[data-role="navbar"] ul li').bind('click',function(event, ui){ 
    $.mobile.changePage(
    '#'+$.mobile.activePage[0].id, 
    { 
     allowSamePageTransition : true, 
     transition    : 'none', 
     showLoadMsg    : false, 
     reloadPage    : false 
    } 
); 
}); 

이 코드는 pagebeforeshow 잡을 것 : 이미 해당 이벤트를

$('#pageID').live('pagebeforeshow',function(e,data){ 
    alert('Reload'); 
    //Execute AJAX here 
}); 
+0

매력처럼 작동합니다! 감사! – Iladarsda

0

내가 탐색하는 모든 페이지가 data-role attr 인 div라고 가정합니다. 따라서 아래와 같이 이벤트를 바인딩 할 수 있어야합니다.

$('div[data-role="page"]').live('pagebeforeshow', showLoadDiv); 

function showLoadDiv() { 
    //Your code here 
} 

//when you want to call it manually 
showLoadDiv(); 
+0

가, 내가 후 나는 것은'pagebeforeshow을 강제하는 방법입니다 '버튼 클릭 이벤트에서 실행합니다. – Iladarsda

+0

페이지 보이기를 실행하려면 다른 페이지로의 페이지 전환을 활성화해야합니다. 현재 페이지를 다시로드하거나 다른 페이지로 전환 하시겠습니까? – Gajotres

+0

내 대답을 편집했습니다. 위의 코드 비트를 사용할 수있는로드 함수 (이벤트 아님)를 호출하려는 경우. –

관련 문제