touchmove,touchstart,touchend在自定义组件传参有问题
在自定义组件里的触摸事件,传参到引用组件的页面那里
< canvas canvas-id = "lineCanvas" disable-scroll = "true" class = "canvas" bindtouchmove = "moveHandlerBind" bindtouchstart = 'touchHandlerBind' bindtouchend = 'touchEndHandlerBind' ></ canvas > |
methods: { touchHandlerBind: function (e) { this .triggerEvent( 'touchHandlerBind' , e, { bubbles: true , composed: true }); }, moveHandlerBind: function (e) { this .triggerEvent( 'moveHandlerBind' , e, { bubbles: true , composed: true }); }, touchEndHandlerBind: function (e) { this .triggerEvent( 'touchEndHandlerBind' , e, { bubbles: true , composed: true }); } } |
引用组件的页面
</ scroeDetail > |
moveHandlerBind: function (e) { this .setData({ moveHandler: e.detail, //在手机上这样写是正常的,但是在电脑上,e就是触摸返回的数据 }) }, touchHandlerBind: function (e) { this .setData({ touchHandler: e.detail, }) }, touchEndHandlerBind: function (e) { this .setData({ touchEndHandler: e.detail, }) }, |
电脑上引用组件的页面接到的数据是有问题的,整个e都是触摸的数据
{ "type" : "touchmove" , "timeStamp" :7001.8150000000005, "target" :{ "id" : "" , "offsetLeft" :0, "offsetTop" :0, "dataset" :{}}, "touches" :[{ "identifier" :0, "x" :280, "y" :69}], "changedTouches" :[{ "identifier" :0, "x" :280, "y" :69}]} |
手机上就是正常的,接收到的数组在e.detail里面