[问题贴]mui.openWindow+自定义事件监听操作让alert()执行两次
仔细看,Alert函数执行了两次
共两个页面:index.html和detail.html,
detail.html为按钮设置了自定义事件监听(newsId),触发alert.
在index.html点击按钮就会触发事件newsId,并用mui.openWindow()打开detail.html页面。
然后我有两个问题:
1. 就是上面提到的alert执行两次?
2. 就是有时候点击按钮并不会有任何操作,是文档没有加载完毕可能,有什么解决方法吗?
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | // ---index.html <body> <header class = "mui-bar mui-bar-nav" > <h1 class = "mui-title" >新闻页面</h1> </header> <div class = "mui-content" > <a id= "pen" class = "mui-btn mui-btn-blue" >钢笔事件</a> <a id= "book" class = "mui-btn mui-btn-blue" >书籍事件</a> <a id= "teacher" class = "mui-btn mui-btn-blue" >教师事件</a> </div> <script src= "js/mui.min.js" ></script> <script type= "text/javascript" charset= "utf-8" > mui.init({ //初始化预加载详情页面 preloadPages:[{ id: 'detail.html' , url: 'detail.html' }] }); mui.plusReady( function () { alert( 'plusReady()执行成功!' ); }); 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' }); }); </script> </body> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | //---detail.html <body> <header class = "mui-bar mui-bar-nav" > <a class = "mui-action-back mui-icon mui-icon-left-nav mui-pull-left" ></a> <h1 class = "mui-title" >详情页</h1> </header> <div class = "mui-content" > <div id= "showId" ></div> <div class = "mui-bar-footer mui-bar mui-text-center" ><a class = "mui-btn mui-btn-blue" >回到新闻页</a></div> </div> <script src= "js/mui.min.js" ></script> <script type= "text/javascript" > mui.init(); //添加newsId自定义时间监听 window.addEventListener( 'newsId' , function (event){ //获得事件参数 var id = event.detail.id; //将id显示在详情页上 alert(id); // 会出现两次是为什么? var showId = document.getElementById( 'showId' ); showId.innerText = id; }); //添加列表点击事件 mui( '.mui-content' ).on( 'tap' , 'a' , function (e){ mui.openWindow({ url: 'index.html' , id: 'index.html' , createNew: true //重新出发index.html页面的plusReady()函数 }); }); </script> </body> |
------待解决--------
分类:
IT-程序设计-前端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?