//初始化预加载详情页面
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");
}
........
实在是醉了,虽然是国产最好的前端框架,但这样的低级错误是不是不该犯啊?
2 个回复
51ZionLin
有种东西叫做
<script src="html5plus://ready"></script>
DCloud_UNI_CHB
事件委托的写法,一般无需等待plusReady事件,Hello MUI工程中就是如此使用的,并未收到页面无法跳转的bug;
因此这个问题需要根据具体情况分析,
但是需要注意如上这段代码的位置:
另外,关于文档,阐述一个观点:
文档中的代码示例,大多为核心code,不太可能把所有上下文代码全部复制上来;
而示例工程,则应该实现完整的代码事先。