等烟雨
等烟雨
  • 发布:2015-02-07 09:32
  • 更新:2016-06-29 09:28
  • 阅读:2624

通过自定义事件实现页面间传值时,自定义的事件什么时候执行

分类:MUI

我一个页面预加载了两个子页面,为什么我打开其中一个子页面时,另外一个子页面的自定义事件也执行了?
主页面主要代码如下:

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();  
                });  
            }
2015-02-07 09:32 负责人:无 分享
已邀请:
那时落叶飘零

那时落叶飘零

仔细看一遍你的代码注释你就明白了

Jonny515688

Jonny515688

仔细看你的代码,你点击的时候同时fire了两个自定义事件

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