在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
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");
对我来说,这就是诀窍。
Interesting Posts