在官方文档中看到这两种预加载页面的方式不知有什么不同?
官网的文档介绍mui.fire时,有一点没有看懂,这句 var id = event.detail.id;,
取id为什么用event.detail.id。设置newid事件时不是 id:id,取值时为什么event不等于id?
那么event.detail是什么意思?
mui.fire(detailPage,'newsId',{
id:id
});
//初始化预加载详情页面
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'
});
});
详情页面代码如下:
//添加newId自定义事件监听
window.addEventListener('newsId',function(event){
//获得事件参数
var id = event.detail.id;
//根据id向服务器请求新闻详情
.....
});
2 个回复
chender - 与人为善
mui.init中预加载界面是告诉mui,在plusready后,把对应的页面都加载好,隐藏在那里;
mui.preload是打开一个指定id的返回时不关闭而是因擦的界面,如果这个界面已经存在,就直接显示,如果不存在就创建并显示;
另外关于 event.detail,你可以理解成你设置的那个param就是event.detail,所以param.id就是event.detail.id
爱慕啼 (作者) - 长得帅有内涵
那我以后取参数都要加一个event.detail的前缀,比如说event.detail.XX吗?
chender
如果是事件机制传参的话就是这样的
2015-08-28 09:55