在JQuery Mobile上以编程方式更改选项卡

我有一个导航栏(吼叫),我想用Javascript更改标签,找不到文档来帮助我和很多在线破解的代码,我将在这里感谢一些帮助。

测试用例:选项卡最初选择了第1页,我想使用javascript更改为第2页。

经测试的代码:

 var index = $('#tabs a[href="#page-2"]').parent().index(); $('#tabs').tabs('select', index); 

抛出:

 Error: no such method 'select' for tabs widget instance 

解决方案之后我想出了这些function:

 function changeNavPagePrevious(tabControl) { if ($("#" + tabControl + " .ui-tabs-active").prev().length > 0) { if ($("#" + tabControl + " .ui-tabs-active").prev().children().length > 0) { changeNavPage(tabControl, $("#" + tabControl + " .ui-tabs-active").prev().children().eq(0).attr("href").replace("#", "")); } } } function changeNavPageNext(tabControl) { if ($("#" + tabControl + " .ui-tabs-active").next().length > 0) { if ($("#" + tabControl + " .ui-tabs-active").next().children().length > 0) { changeNavPage(tabControl, $("#" + tabControl + " .ui-tabs-active").next().children().eq(0).attr("href").replace("#", "")); } } } function changeNavPage(tabControl, newPage) { $("#" + tabControl + " .ui-btn-active").eq(0).removeClass("ui-btn-active").removeClass('ui-tabs-active').removeClass("ui-state-active"); $('#tabs a[href="#' + newPage + '"]').addClass('ui-btn-active'); var index = $('#' + tabControl + ' a[href="#' + newPage + '"]').parent().index(); $("#" + tabControl).tabs("option", "active", index); 

}

工作示例: http : //jsfiddle.net/Gajotres/aX7L9/

HTML:

    jQM Complex Demo        

First tab contents

JavaScript的:

 $(document).on('pagecontainershow', function () { pageId = $('body').pagecontainer('getActivePage').prop('id'); if (pageId === 'index') { setTimeout(function(){ $(".tabs").tabs( "option", "active", 1 ); }, 1000); } }); 

jQuery Mobile使用jQuery UI选项卡小部件,所以在这里找到你需要的一切。

为什么不简单地使用

 $('a[href="#page-2"]').trigger("click"); 

对我来说,这就是诀窍。