0

NavBarすべてのページの下部に小さなjQueryMobileサイトがあります。バーにはいくつかのボタンがあり、サイト全体で機能するはずです。

pagebeforeshowページ名/IDを知らずに(現在表示されているページで)イベントを強制するにはどうすればよいですか?

これを行うための一般的な関数はありますか、それともname/id最初にページを取得して、これを使用して呼び出す必要がありますpagebeforeshowか?


アップデート

以下は現在のページIDを取得しますが、trigger("refresh")アクションをトリガーするためにシームされpagebeforeshowません(実行されません)。

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

助言がありますか?

4

2 に答える 2

3

これが実際の例です。

これにより、ナビゲーションバーをクリックしているときにページのリロードが開始されます。

$('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
});
于 2012-11-28T12:28:57.447 に答える
0

ナビゲートしているすべてのページは、data-roleattr を持つ div であると想定しています。したがって、以下のようにイベントをバインドできるはずです。

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

function showLoadDiv() {
   //Your code here
}

//when you want to call it manually
showLoadDiv();
于 2012-11-28T11:25:34.847 に答える