响应式网站:为什么需要触摸启动而不是点击?

时间:2015-07-16 16:40:37

标签: javascript html mobile touch touchstart

我正在使用ReactJS开发复杂的单页面应用程序。

这个页面最初是一个桌面浏览器应用程序,到处都有很多“onclick”监听器,包括内部代码,还有我们无法轻易修改的外部插件/库。

但是现在我们已经做出了响应,它可以在移动网站和Cordova / Phonegap应用程序中使用。

只需使CSS响应即可生成一个不错的结果,而根本不会引入touchstart事件。

当用户使用单击侦听器触摸元素时,将调用侦听器并且单击事件正确冒泡(except on iOS but it can be solved

所以,除非我试图实现触摸特定的复杂功能,如拖放和触摸,或特殊的“合成事件”,如按,捏,点击,滑动(通常由移动专用库提供),为什么会我需要以任何方式使用touchstart吗?

例如,根据设备功能,我在应用程序中often see people trying to mix both click and touchstart

但如果click有效,为什么我需要关心touchstart

touchstart有哪些优势尚未由click处理?

注意:这完全不是300毫秒的点击延迟,可以通过其他方式解决。

1 个答案:

答案 0 :(得分:0)

我们使用touchstart / touchmove的唯一原因是拖动事件,例如滚动/内部搜索检测。

例如,我们想要检测滚动的结尾以进行无限滚动。

在桌面上我们可以使用:

$('.whatever').scroll({ blahhhh

但在移动设备上我们使用:

$('.whatever').on('touchmove', blahhhh

另外你一定要结帐How to bind 'touchstart' and 'click' events but not respond to both?