c***@qq.com
c***@qq.com
  • 发布:2017-06-04 11:31
  • 更新:2017-06-05 15:35
  • 阅读:1391

官方文档太不负责任了,很简单的传值跳转坑死新人

分类:HBuilder
//初始化预加载详情页面  
mui.init({  
  preloadPages:[{  
    id:'detail.html',  
    url:'detail.html'             
  }  
  ]  
});  
  
var detailPage = null;  
//添加列表项的点击事件  
mui('.mui-content').on('tap', 'a', function(e) {  
  var id = this.getAttribute('id');  
  //获得详情页面  
  if(!detailPage){  
    detailPage = plus.webview.getWebviewById('detail.html');  
  }  
  //触发详情页面的newsId事件  
  mui.fire(detailPage,'newsId',{  
    id:id  
  });  
//打开详情页面            
  mui.openWindow({  
    id:'detail.html'  
  });  
});  

以上是官方原版文档,复制粘贴到项目里根本起不了作用,不能跳转!!!!官方你们就不检查下吗????这样的误人子弟真的好吗???
我就在这里纠正一下代码,为什么跳转不了,因为plus.webview事件需要写在plusReady()里面才行!!!
如下代码:

mui.plusReady(function() {  
				var newsPage = null;  
				//添加列表项的点击事件  
				mui('.mui-content').on('tap', 'a', function(e) {  
					var id = this.getAttribute('id');  
					//获得详情页面  
					if(!newsPage) {  
						newsPage = plus.webview.getWebviewById("news.html");  
					}  
........

实在是醉了,虽然是国产最好的前端框架,但这样的低级错误是不是不该犯啊?

2017-06-04 11:31 负责人:无 分享
已邀请:
51ZionLin

51ZionLin

有种东西叫做
<script src="html5plus://ready"></script>

DCloud_UNI_CHB

DCloud_UNI_CHB

事件委托的写法,一般无需等待plusReady事件,Hello MUI工程中就是如此使用的,并未收到页面无法跳转的bug;
因此这个问题需要根据具体情况分析,

 mui('.mui-content').on('tap', 'a', function(e) {  
    //TODO  
});

但是需要注意如上这段代码的位置:

  • 如果这段JS放在文档最后,一般是不会有问题的;
  • 如果放在文档前面,此时.mui-content元素尚不存在的话,则监听无效,自然不会有页面跳转;

另外,关于文档,阐述一个观点:
文档中的代码示例,大多为核心code,不太可能把所有上下文代码全部复制上来;
而示例工程,则应该实现完整的代码事先。

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