touchmove 事件有空事件数据

问题描述 投票:0回答:2

没关系我意识到'JSON.stringify(evt)'不会打印出事件对象中的数据??????

原问题:

我有

var canvas = document.createElement('canvas');

canvas.addEventListener('touchmove', function(evt)
{
  alert(JSON.stringify(evt));
},false);

当我看到警报时,“evt”为空。所以所有这些帖子,比如这个 iphone 的 safari touchmove 事件不起作用,说要获取“originalEvent”,并不适用于我,因为 evt 中根本没有任何东西可看。

如何让“evt”中包含触摸数据,以便我可以使用类似代码获取触摸位置

var touch = evt.changedTouches[0];

注意:下一行代码具有以下效果很好的鼠标事件

canvas.addEventListener('mousemove', function(evt)
{
  alert(JSON.stringify(evt));
}, false);
javascript html5-canvas touchmove
2个回答
0
投票

数据就在那里,仅此而已

alert(JSON.stringify(evt));

显示为空白。不知道为什么 JSON.stringify 不适用于事件,但这是我带回家的信息


0
投票

JSON.stringify()
docs 说:

仅访问可枚举的自有属性

然后你就有了

touchmove
事件,args 拥有只有一个属性:
isTrusted
。所有其他道具都是从原型继承的,因此它们被该函数忽略。

在 JS 控制台中 在 Chrome 中,您可以辨别哪些道具是自己的 - 它们的名称以粗体显示。尝试一下

console.log(evt)


附注是的,它应该是已接受答案下的评论,但需要更多代表:(

© www.soinside.com 2019 - 2024. All rights reserved.