a***@163.com
a***@163.com
  • 发布:2019-03-23 23:57
  • 更新:2019-03-28 16:54
  • 阅读:1350

5+App项目,使用官方的底部选项卡(nav),在用户登录验证返回首页后,底部选项止不能正常切换。

分类:HBuilder

本人刚接解Dcloud,最近在使用时遇到一个问题
首页一个(nav)底部选项卡,使用,在第四个“我的”页面里,用户登录验证返回首页后,底部选项卡就出现不能正常切换,偶尔行偶尔不行,请问哪位高手知道原因,还望指点。
部分代码如下:
index页

	<nav class="mui-bar mui-bar-tab">  
		<a id="defaultTab" class="mui-tab-item mui-active" href="tab-home.html">  
			<span class="mui-icon mui-icon-home"></span>  
			<span class="mui-tab-label">首页</span>  
		</a>  
		<a class="mui-tab-item" href="tab-tao.html">  
			<span class="mui-icon mui-icon-phone"></span>  
			<span class="mui-tab-label">选项二</span>  
		</a>  
		<a class="mui-tab-item" href="tab-jd.html">  
			<span class="mui-icon mui-icon-email"></span>  
			<span class="mui-tab-label">选项dg 三</span>  
		</a>  
		<a id="tab-me" class="mui-tab-item" href="tab-me.html">  
			<span class="mui-icon mui-icon-gear"></span>  
			<span class="mui-tab-label">我的</span>  
		</a>  
	</nav>  
	  

     var subpages = ['tab-home.html', 'tab-tao.html', 'tab-jd.html', 'login.html'];  
  var subpage_style = {  
			top: '0px',  
			bottom: '51px'  
		};  

		var aniShow = {};  

		//创建子页面,首个选项卡页面显示,其它均隐藏;  
		mui.plusReady(function() {  
			var self = plus.webview.currentWebview();  
			for (var i = 0; i < 4; i++) {  
				var temp = {};  
				var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);  
				if (i > 0) {  
					sub.hide();  
				} else {  
					temp[subpages[i]] = "true";  
					mui.extend(aniShow, temp);  
				}  
				self.append(sub);  
			}  
		});  


		//当前激活选项  
		var activeTab = subpages[0];  
		// var title = document.getElementById("title");  
		//选项卡点击事件  
		mui('.mui-bar-tab').on('tap', 'a', function(e) {  
			var targetTab = this.getAttribute('href');  
			if (targetTab == activeTab) {  
				return;  
			}  
			//更换标题  
			//title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;  
			//显示目标选项卡  
			//若为iOS平台或非首次显示,则直接显示  
			if (mui.os.ios || aniShow[targetTab]) {  
				plus.webview.show(targetTab);  
			} else {  
				//否则,使用fade-in动画,且保存变量  
				var temp = {};  
				temp[targetTab] = "true";  
				mui.extend(aniShow, temp);  
				plus.webview.show(targetTab, "fade-in", 300);  
			}  
			//隐藏当前;  
			plus.webview.hide(activeTab);  
			//更改当前活跃的选项卡  
			activeTab = targetTab;  
		});  
		//自定义事件,模拟点击“首页选项卡”  
		document.addEventListener('gohome', function() {  
			var defaultTab = document.getElementById("defaultTab");  
			//模拟首页点击  
			mui.trigger(defaultTab, 'tap');  
			//切换选项卡高亮  
			var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");  
			if (defaultTab !== current) {  
				current.classList.remove('mui-active');  
				defaultTab.classList.add('mui-active');  
			}  
		});  

		function ChkUs() {  
			mui.ajax({  
				url: "http://192.168.124.5/DisposeData.php",  
				async: false,  
				type: 'post', //HTTP请求类型  
				dataType: 'text', //服务器返回text格式数据  
				data: {Event: "ChkUsOnLine"},  
				success: function(data) {Islog=data;},  
				error: function(xhr, type, errorThrown) {Islog = "E";}  
			});  
		};  

子页面在验证成功后,使用二种方法返回均不行
一://跳转到首页
mui.openWindow({
url: "index.html",
id: "index",
createNew: false
});
二:
var h = plus.webview.getLaunchWebview().getURL();
plus.webview.open(h);

2019-03-23 23:57 负责人:无 分享
已邀请:
a***@163.com

a***@163.com (作者) - 购有利

通过摸索,该问题已解决。实际上换个思路就可以解决问题,用evalJS刷新首页就行了。

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