一卡通
一卡通
  • 发布:2015-05-25 16:08
  • 更新:2015-05-26 12:36
  • 阅读:2012

自定义事件的问题

分类:MUI

这个自定义事件,要是用preloadPages就可以触发。不用的话该怎么写?
这不是为了传值,是为了测试自定义事件!

<script>  
            mui.init(); //添加列表项的点击事件  
            /* {  
                preloadPages: [{  
                    id: 'detail.html',  
                    url: 'detail.html'  
                }]  
            }*/  
        </script>  
    </head>  
    <body style="background-color: #007AFF;">  
        <button id="abc" type="button">aaa</button>  
        <script>  
            document.getElementById('abc').addEventListener('tap', function() {  
                var detailPage = plus.webview.getWebviewById('detail.html');  
                mui.fire(detailPage, 'newsId', {  
                    aa: 'id'  
                });       
                mui.openWindow({  
                    //                  url: 'detail.html',  
                    id: 'detail.html'  
                });  
            });  
        </script>  
    </body>

detail页面

<body>  
        <div id="wss">111</div>  
        <script>  
            mui.init();  
            window.addEventListener('newsId',function(event){  
              var id = event.detail.aa;  
              alert('id');  
            });  
        </script>  
    </body>
2015-05-25 16:08 2 条评论 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

如果是非预加载,你在openWindow的时候直接传

{  
...  
extras:{id:1}  
...  
}

参数即可。
在你的detail.html里边plus.webview.currentWebview().id即可获取extra里的参数。

如果非要用自定义事件。那么你应该在该webview loaded之后再发送事件。

var detailWebview = mui.openWindow({...});  

detailWebview.addEventListener('loaded',function(){  
mui.fire(detailWebview,'newsId',{aa:'id'});  
});
  • 一卡通 (作者)

    我不是为了传参数的,那么写只是为了看自定义时间是否有被触发。。。

    2015-05-25 18:09

  • DCloud_UNI_FXY

    那你就用下边我写的,把事件放到该webview loaded里边触发

    2015-05-25 18:12

一卡通

一卡通 (作者)

求助,求助,1

一卡通

一卡通 (作者)

谢谢,问题解决了。

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