0

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

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

但现在我们让它具有响应性,它可以在移动网站和 Cordova/Phonegap 应用程序中使用。

只是让 CSS 响应式会产生一个很好的结果,而touchstart根本不需要引入事件。

当用户使用点击监听器触摸元素时,会调用监听器并且点击事件正确冒泡(iOS 除外,但可以解决

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

例如,我经常看到人们试图根据设备功能在应用程序中混合点击和触摸启动。

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

touchstart那些尚未处理的优点是click什么?

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

4

1 回答 1

0

我们使用 touchstart/touchmove 的唯一原因是用于拖动事件,例如滚动/inner-scolling 检测。

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

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

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

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

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

另外,您绝对应该检查如何绑定“touchstart”和“click”事件但不响应两者?

于 2015-07-16T16:58:02.983 回答