createTouch vs ontouchstart - 检测触摸屏设备的最佳方法?

时间:2015-02-24 06:14:11

标签: javascript jquery touch

目前,为了检测触摸屏设备,我在javascript中使用了这个:

if ('createTouch' in document) {
// do touchscreen-specific stuff 
}

我看到许多开发人员使用ontouchstart,如下所示:

if ('ontouchstart' in document) {
// do touchscreen-specific stuff 
}

createTouchontouchstart之间有什么区别?哪一个最安全?还有其他一些简单,可靠的替代品吗?

2 个答案:

答案 0 :(得分:3)

触摸表面上放置触摸点时会触发

touchstart事件([MDN] [1])

createTouch方法创建并返回一个新的Touch对象。([MDN] [2])

从我的观点来看,更好的方法是在窗口中检测事件的存在而不是仅创建事件。

此外,您的声明仅检查窗口对象中的现有触摸事件,而不是Windows手机等触摸屏,因此您可能也想检查指针事件。

P.S。:查看具有“触摸”检测功能的Modernizr库等等。

答案 1 :(得分:2)

ontouchstart是基于事件的触发器。当用户执行某些操作时将调用它。有关详情,请访问ontouchstart event。因此,执行基于用户的动作更有效。

虽然将调用createtouch,但无论用户是否执行了某些操作。如果我错了,请有人纠正我。 :)