页面的选项卡中如何通过controller返回到指定选项卡? 5

每次点击其他选项卡时,跳转到controller中,每次都是进入第一个选项卡,我的全部选项卡全部在一个页面。。... 每次点击其他选项卡时,跳转到controller中,每次都是进入第一个选项卡,我的全部选项卡全部在一个页面。。 展开
 我来答
东坡下载站
2019-01-09 · 最新优质手游软件资源下载
东坡下载站
东坡下载是一个专业的无毒的免费的软件资源网站
向TA提问
展开全部

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{
            //不能再退了
        }
    }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式