侠客的刀
侠客的刀
  • 发布:2019-04-25 15:25
  • 更新:2019-05-13 16:05
  • 阅读:1204

mui 导航栏快速点击切换会出现页面与导航不一致的情况

分类:MUI


```<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="utf-8">  
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />  
    <title></title>  
    <link rel="stylesheet" type="text/css" href="css/mui.min.css"/>  
</head>  
<body>  
    <nav class="mui-bar mui-bar-tab">  
        <a href="html/home.html" class="mui-tab-item mui-active" id="defaultTab">  
            <span class="mui-icon iconfont icon-shouye"></span>  
            <span class="mui-tab-label">首页</span>  
        </a>  
        <a href="html/fabu.html" class="mui-tab-item" id="fabu">  
            <span class="mui-icon iconfont icon-money"></span>  
            <span class="mui-tab-label">发布</span>  
        </a>  
        <a href="html/xinxi.html" class="mui-tab-item" id="xinxi">  
            <span class="mui-icon iconfont icon-xiazai16"></span>  
            <span class="mui-tab-label">信 息</span>  
        </a>  
        <a href="html/chengjiao.html" class="mui-tab-item" id="chengjiao">  
            <span class="mui-icon mui-icon-locked"></span>  
            <span class="mui-tab-label">成 交</span>  
        </a>  
        <a href="html/user.html" class="mui-tab-item" id="wode">  
            <span class="mui-icon iconfont icon-wode"></span>  
            <span class="mui-tab-label">我 的</span>  
        </a>  
 </nav>  
<script src="js/mui.min.js"></script>  
<script src="js/jquery-1.11.3.min.js"></script>  
<script type="text/javascript">  

// 初始化mui.init()写在这里     
        mui.init();  
        //设置默认打开首页显示的子页序号;  
        var Index = 0;  
        var subpages = ['html/home.html', 'html/fabu.html', 'html/xinxi.html','html/chengjiao.html','html/user.html'];  

        //把子页的路径写在数组里面  
        //所有的plus-*方法写在mui.plusReady中或者后面。  
        mui.plusReady(function() {  
            //获取当前页面所属的Webview窗口对象  
            var self = plus.webview.currentWebview();  
            for(var i = 0; i < 5; i++) {  
                //创建webview子页  
                var sub = plus.webview.create(  
                    subpages[i], //子页url  
                    subpages[i], //子页id  
                    {  
                        top: '0', //设置距离顶部的距离  
                        bottom: '50px' //设置距离底部的距离  
                    }  
                );  
                //如不是我们设置的默认的子页则隐藏,否则添加到窗口中  
                if(i != Index) {  
                    sub.hide();  
                }  
                //将webview对象填充到窗口  
                self.append(sub);  
            }  
        });  

        //当前激活选项  
        var activeTab = subpages[Index],  
            title = document.querySelector(".mui-title");  
        //选项卡点击事件  
        mui('.mui-bar-tab').on('tap', 'a', function(e) {  
            //获取目标子页的id  
            var targetTab = this.getAttribute('href');  
            if(targetTab == activeTab) {  
                return;  
            }  
            //更换标题  
            // h1.innerHTML = this.querySelector('.mui-tab-label').innerHTML;  
            //显示目标选项卡  
            plus.webview.show(targetTab);  
            //隐藏当前选项卡  
            plus.webview.hide(activeTab);  
            //更改当前活跃的选项卡  
            activeTab = targetTab;  
        });  
        //自定义事件,模拟点击“首页选项卡”  
        //申请页面  
        window.addEventListener('defaultTab', function() {  
             location.reload();                  
            var apply= document.getElementById("defaultTab");  
            //模拟首页点击  
            mui.trigger(apply, 'tap');  
            //切换选项卡高亮  
            var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");  
            if(apply!== current) {  
                current.classList.remove('mui-active');  
                apply.classList.add('mui-active');  
            }  
        });  

    </script>  
</body>  
</html>  

有大神知道怎么解决吗? 不胜感激
2019-04-25 15:25 负责人:无 分享
已邀请:
侠客的刀

侠客的刀 (作者) - 學而時習之不亦說乎

//选项卡点击事件
mui('.mui-bar-tab').on('tap', 'a', function(e) {
$(this).css('color','#0d50a3').siblings().css('color','#878a8e');
var targetTab = this.getAttribute('href');
if (targetTab == activeTab) {
return;
}
呃呃 试了下这样就不会出现快速切换不一致的问题了

该问题目前已经被锁定, 无法添加新回复