1

我使用路由器中的函数动态加载从模板创建的页面(如在某些教程中所见):

    changePage: function(page) { // page is a View object
        $(page.el).attr('data-role', 'page');
        page.render();
        $('body').append($(page.el));
        var transition = $.mobile.defaultPageTransition;
        if (this.firstPage) {
            transition = 'none';
            this.firstPage = false;
        }
        $.mobile.changePage($(page.el), {changeHash:false, transition: transition});
    }

问题是当页面包含 JQ Mobile 导航栏时,活动项目不会突出显示。实际上是,像 1 毫秒,然后不是,我觉得这是因为导航栏被“重新加载”了。当我在同一个项目上单击 2 次时,它会第二次起作用。

有没有人能够使用 jQuery Mobile 和backbone.js 使用导航栏?

4

1 回答 1

0

我最终这样做了:

var activeTab = null;

$('[data-role=page]').live('pageshow', function (event, ui) { 
    $.each($('[data-role=navbar] ul li').children(), function (i, val) {
        if (typeof activeTab !== "undefined" && activeTab != null && $(val).attr('id') == 'navTab' + activeTab)
            $(val).addClass($.mobile.activeBtnClass);
        else
            $(val).removeClass($.mobile.activeBtnClass);
    });
    activeTab = null;
}); 

对于需要活动选项卡的每条路线,我只需执行以下操作:

r_search: function() { // Search page (form)
    activeTab = "Search";
    this.changePage(new SearchView());
},
于 2012-07-10T19:41:36.193 回答