页面的选项卡中如何通过controller返回到指定选项卡? 5
每次点击其他选项卡时,跳转到controller中,每次都是进入第一个选项卡,我的全部选项卡全部在一个页面。。...
每次点击其他选项卡时,跳转到controller中,每次都是进入第一个选项卡,我的全部选项卡全部在一个页面。。
展开
1个回答
展开全部
webview模式的选项卡页面,其实是将多个子选项卡对应的webview合并到了一个主webview中,点击选项卡时,动态显示、隐藏对应子webview页面,所有页面是一个整体,通常情况下得逻辑是,返回按键时,关闭主页面;
但若用户希望实现,点击返回时,返回到上一次活跃的子选项卡页面,则需简单定制,实现逻辑很简单:
1. 每次点击时,记录上一次活跃的选项卡;
2. 自定义返回函数,返回时隐藏当前选项卡,显示上一次活跃的选项卡页面;
如下为示例代码:
//当前激活选项,默认为第一个;
var activeTab = subpages[0];
var lastActiveTabs = new Array();
//选项卡点击事件
mui('.mui-bar-tab').on('tap', 'a', function(e) {
var targetTab = this.getAttribute('href');
if (targetTab == activeTab) {
return;
}
//先隐藏当前的
plus.webview.hide(activeTab);
//再显示目标
plus.webview.show(targetTab);
//记录上次活跃的选项卡
lastActiveTabs.push(activeTab);
//更改当前活跃的选项卡
activeTab = targetTab;
});
mui.back = function(){
if(lastActiveTabs.length>0){
var last = lastActiveTabs.pop();
//先隐藏当前的
plus.webview.hide(activeTab);
//取消当前选项卡的高亮样式
document.querySelector(".mui-bar-tab .mui-active").classList.remove("mui-active");
//再显示历史页面
plus.webview.show(last);
//历史选项卡增加高亮样式
document.querySelector(".mui-bar-tab a[href='http://ask.dcloud.net.cn/"+last+"']").classList.add("mui-active");
//更改当前活跃的选项卡
activeTab = last;
}else{
//不能再退了
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询