0

フッターのページ div の外側にナビゲーション バーがあります (すべてのページにあります)。ナビゲーション バーの永続的なアクティブ状態を簡単に修正しようとしました。いずれかのページのタブでは機能しましたが、機能していないようです。このために働きます。

実際には、何らかの理由で ui-btn-active が追加されないことを除いて、すべてが機能します

ここにコードがあります

$(document).one( "pageinit", function() {
  $('div[data-role="footer"] [data-role="navbar"] a').click(function(e) {
    $(this).html("abc");
    $('div[data-role="footer"] [data-role="navbar"] .ui-btn-active').removeClass('ui-btn-active ui-state-persist');
    $(this).addClass('ui-btn-active ui-state-persist');
});

});

アンカーの html が変更され、最後の行に ui-state-persist が追加されますが、何らかの理由で ui-btn-active が追加されません...

4

1 に答える 1

0

わかりました、jquery mobile は、navbar がページの div の外にある場合でも、ページ遷移時に ui-btn-active を自動的に削除するようです (これはちょっと不自由だと思います...)そのイベントで作業する...代わりにpageshowを使用しました。

作業コードは次のとおりです。

var navbar;
$(document).on("pageshow", function() {
    if(navbar) {
        $(navbar).addClass('ui-btn-active')
    }
});
$(document).one( "pageinit", function() {
    $('div[data-role="footer"] [data-role="navbar"] a').click(function() {
        navbar = $(this);
    });
});
于 2014-07-17T20:55:26.157 に答える