jquery mobile:navbar不保持活动状态

我有这个导航栏页脚:

 

问题是按钮在单击时不保持活动状态。 当在所有按钮上将a href更改为#时,这确实有效,但当然,这会破坏我的导航。

我已经尝试将ui-state-persist添加到所有按钮,但这也不起作用。 谁知道如何解决这个问题?

我尝试过的另一件事是:

 $(".my_buttons").on( "tap", function() { var id = this.id; nav_state(id); }); function nav_state(button) { $(".my_buttons").removeClass("ui-btn-active",function() { $("#"+button).addClass("ui-btn-active"); }); } 

这不起作用……

编辑:显然, removeClass没有回调。 删除回调不起作用,但……

您需要添加自己的代码,以便在每次页面更改时更新活动按钮。 有不同的方法可以做到这一点,但这是一种方式:

 $(document).on( "pagecontainerchange", function() {    var current = $( ".ui-page-active" ).prop("id");    // Remove active class from nav buttons    $( "[data-role='navbar'] a.ui-btn-active" ).removeClass( "ui-btn-active" );    // Add active class to current nav button    $( "[data-role='navbar'] a" ).each(function() { var href = $( this ).prop("href");        if ( href.indexOf(current, href.length - current.length) !== -1 ) {            $( this ).addClass( "ui-btn-active" );        }    }); }); 

每次pagecontainer小部件更改页面时,我们都会获取正在显示的页面的ID,然后单击导航栏链接以查看哪个href以此页面ID结尾。

DEMO

您还可以查看使用数据属性的持久性导航栏演示: http : //demos.jquerymobile.com/1.4.5/toolbar-fixed-persistent/

JQuery对象没有名为id()的方法,因此使用属性或属性。

  $(this).attr('id'); 

要么

 $(this).prop('id');