在有人问之前:我曾尝试检查SO上的其他答案,但找不到与我的问题完全匹配的东西。我能找到的其他大多数问题都与触发两次触摸事件有关,或者与event.type
是click
或touchend
有关,而这并没有涵盖我想要看到的内容。
与我刚才提到的其他问题一样,我注意到触摸事件不仅触发touchstart
和touchend
事件,而且随后还会触发click
事件。我目前正在开发一个简单的游戏,该游戏同时使用点击事件和触摸事件处理来执行一些不同的动作,这意味着每当触发触摸事件时,都不应在同一目标元素上触发单击事件。
我尝试浏览event
对象,以查看是否有任何方法可以确定click
事件是否是由于某种触摸而触发的,或者是否只是触发了常规点击,但我找不到任何方法。所以我的问题是:是否有任何方法可以在click
事件处理程序中查明该事件是否已由触摸事件触发?最好是我不想在触摸事件中跟踪必须修改的全局变量。
显示两个事件都被触发的示例片段:
window.ontouchend = function(e) {
console.log(e.type);
}
window.onclick = function(e) {
// if (!e.isThisATouchEvent)
console.log(e.type);
}