跨平台HTML touchend事件处理

时间:2012-01-22 15:40:33

标签: javascript html5 javascript-events touch multi-touch

在阅读有关touchend事件时,似乎不同设备之间的行为有些不一致。我只是想知道确定所有触摸是否已经停止的最佳和最简单的方法。我是否正确理解,在这种情况下,我不能依赖event.touches为null或为空,因为某些设备会在该列表中包含已结束的触摸?我是否正确理解,在这种情况下,我不能依赖changedTouches与触摸的长度相同,因为某些设备会从触摸中排除结束的触摸?

1 个答案:

答案 0 :(得分:0)

目前只有OSX(ipad,iphone)在其浏览器上支持ongesturechange事件。所有其他事件在所有设备中都受支持,以下是其中一些事件,这就是如何使用它们的方式。要检测触摸结束,你甚至可以使用touchend,它在所有设备上都是相同的,并且当所有手指都没有接触时它会触发:

$(someel).bind('touchend',callback');

要检测触控支持,请使用此

var touchy=("ontouchstart" in document.documentElement)?true:false;

Safari开发人员ipad指南有很好的文档。

更新:事实上我错了,每次手指抬起时都会触发:这是一个优秀的PDF文件:http://www.albanx.com/programing/ajaxupload/uploaded/SafariJSRef.pdf请看第21页。