binladen
binladen
  • 发布:2017-06-14 09:43
  • 更新:2017-06-14 19:38
  • 阅读:1832

刚更新Hbuilder,View控件添加的事件监听不到!怎么回事?

分类:HTML5+

刚更新Hbuilder,View控件添加的事件监听不到!怎么回事?

2017-06-14 09:43 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

提供一个可以重现问题的demo。

binladen

binladen (作者)

文档里的例子 view可以创建并显示 但点击事件没反应

<!DOCTYPE HTML>  
<html>  

    <head>  
        <meta charset="utf-8" />  
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />  
        <title>NativeObj Example</title>  
        <script type="text/javascript">  
            // H5 plus事件处理  
            function plusReady() {}  
            if(window.plus) {  
                plusReady();  
            } else {  
                document.addEventListener("plusready", plusReady, false);  
            }  
            var view = null;  
            // 创建原生View控件  
            function createView() {  
                view = new plus.nativeObj.View('test', {  
                    top: '200px',  
                    left: '0px',  
                    height: '60px',  
                    width: '100%'  
                });  
                // 绘制文本  
                view.drawText('原生绘制的文本内容', {}, {  
                    size: '60px',  
                    color: '#FF0000'  
                });  
                view.show();  
                plus.nativeUI.toast('创建成功');  
            }  
            // 监听原生View控件click事件  
            function addEventView() {  
                view.addEventListener("click", onClick, false);  
            }  
            // 监听事件函数  
            function onClick(e) {  
                console.log("点击原生控件:" + JSON.stringify(e));  
                var clientX = e.clientX; // 在View控件中的X坐标  
                var clientY = e.clientY; // 在View控件中的Y坐标  
                var pageX = e.pageX; // 在当前Webview窗口(运行此脚本的窗口)中的X坐标  
                var pageY = e.pageY; // 在当前Webview窗口(运行此脚本的窗口)中的Y坐标  
                var screenX = e.screenX; // 在屏幕中的X坐标  
                var screenY = e.screenY; // 在屏幕中的Y坐标  
                var target = e.target; // View控件对象  
            }  
        </script>  
    </head>  

    <body>  
        <button onclick="createView()">创建View控件</button><br/>  
        <button onclick="addEventView()">监听原生View控件click事件</button><br/>  
    </body>  

</html>
Neil_HL

Neil_HL

你好,已确认这是个bug,我们将尽快处理;
你目前可以将view.show(); 改为plus.webview.currentWebview().append(view);
这样的话是可以生效的

  • binladen (作者)

    谢谢!

    2017-06-14 20:14

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