当前位置: 代码迷 >> JavaScript >> 响应式网站:为什么需要touchstart而不是click?
  详细解决方案

响应式网站:为什么需要touchstart而不是click?

热度:79   发布时间:2023-06-12 13:40:48.0

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

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

但是现在,我们使其响应迅速,并且可以在移动网站和Cordova / Phonegap应用程序中使用。

仅使CSS响应即可产生不错的结果,而touchstart不引入touchstart事件。

当用户使用点击监听器触摸元素时,将调用该监听器,并且click事件会正确冒泡( )

因此,除非我尝试实现特定于触摸的复杂功能(如带触摸的拖放)或特殊的“合成事件”(如按,捏,轻按,滑动(通常由移动专用库提供)),否则为什么我需要使用touchstart以任何方式?

例如,我根据设备功能在应用程序中 。

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

尚未通过click处理的touchstart的优点是什么?

注意:这根本不是300ms的点击延迟,可以通过其他方式解决。

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

例如,我们要检测无限滚动的滚动结束。

在桌面上,我们可以使用:

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

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

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

另外,您绝对应该检出

  相关解决方案