![](/img/trans.png)
[英]Why this Javascript plugin use 'touchstart' instead of 'click' event for mobiles
[英]Responsive website: why would touchstart be needed instead of click?
我正在使用ReactJS开发一个复杂的单页应用程序。
该页面最初是一个桌面浏览器应用程序,到处都有许多“ onclick”侦听器,包括内部代码,还有我们不容易修改的外部插件/库。
但是现在,我们使其响应迅速,并且可以在移动网站和Cordova / Phonegap应用程序中使用。
仅使CSS响应即可产生不错的结果,而touchstart
不引入touchstart
事件。
当用户使用点击监听器触摸元素时,将调用该监听器,并且click事件会正确冒泡( 在iOS上除外,但可以解决 )
因此,除非我尝试实现特定于触摸的复杂功能(如带触摸的拖放)或特殊的“合成事件”(如按,捏,轻按,滑动(通常由移动专用库提供)),否则为什么我需要使用touchstart以任何方式?
例如,我经常看到人们尝试根据设备功能在应用程序中混合使用clickstart和touchstart 。
但是,如果click
有效,为什么我需要关心touchstart
?
尚未通过click
处理的touchstart
的优点是什么?
注意:这根本不是300ms的点击延迟,可以通过其他方式解决。
我们使用touchstart / touchmove的唯一原因是发生拖动事件,例如滚动/内部倾斜检测。
例如,我们要检测无限滚动的滚动结束。
在桌面上,我们可以使用:
$('.whatever').scroll({ blahhhh
但在移动设备上,我们使用:
$('.whatever').on('touchmove', blahhhh
另外,您绝对应该检出如何绑定'touchstart'和'click'事件,但不能同时响应两者?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.