我一个页面预加载了两个子页面,为什么我打开其中一个子页面时,另外一个子页面的自定义事件也执行了?
主页面主要代码如下:
var listPage = mui.preload({
url:'List_test.html',
id:'List_test.html'//默认使用当前页面的url作为id
});
var singlePage = mui.preload({
url:'Danye_001.html',
id:'Danye_001.html'//默认使用当前页面的url作为id
});
//添加a标签的tap事件
$.plusReady(function() {
//plus.navigator.closeSplashscreen();//手动关闭启动图片
mui('#backGround').on('tap', 'a', function(e) {
var uid;
var id;
var type;
var strId = this.getAttribute('id');
var strHref = this.getAttribute('href');
console.log(strId+" "+strHref);
var strs= new Array(); //定义一数组
strs=strId.split("_"); //字符分割
for (i=0;i<strs.length ;i++ ){
uid=strs[0];
id=strs[1];
type=strs[2];
}
//触发详情页面的getList事件
mui.fire(listPage,'getList',{
uid:uid,
pid:id
});
//触发详情页面的getSingle事件
mui.fire(singlePage,'getSingle',{
uid:uid,
pid:id,
type:type
});
//打开详情页面
mui.openWindow({
id:strHref,
url:this.href
});
});
});
其中一个子页面代码:
if ( w.plus ){
doRefresh();
}
else{
document.addEventListener( "plusready", doRefresh, false );
}
function doRefresh(){
window.addEventListener('getSingle',function(event){
//获得事件参数
uid = event.detail.uid;
pid = event.detail.pid;
//id = event.detail.id;
console.log("doRefresh"+pid);
type = event.detail.type;
refresh();
});
}
另外一个子页面代码:
if (window.plus ){
doRefresh();
}
else{
document.addEventListener( "plusready", doRefresh, false );
}
function doRefresh(){
window.addEventListener('getList',function(event){
//获得事件参数
uid = event.detail.uid;
pid = event.detail.pid;
console.log("doRefresh"+pid);
refresh();
});
}
2 个回复
那时落叶飘零
仔细看一遍你的代码注释你就明白了
Jonny515688
仔细看你的代码,你点击的时候同时fire了两个自定义事件