Skip to main content
博客
div+css 博客
javascript 博客
vue 博客
php 博客
微信 博客
php
drupal
composer
thinkphp
onethink
laravel
Swoole
dedecms
magento
smarty
ecshop
zencart
joomla
discuz
wordpress
yii
微信
抖音
ci
weiphp
destoon
python
plone
apache
nginx
cache
memcache
redis
div+css
javascript
jquery
typescript
Vue.js
Amaze
zepto
react
underscore
backbone
angular
lodash
layui
js特效
vbscript
photoshop ai
sql
mysql
mssql
oracle
regular
node.js
腾讯开放平台
dreamweaver
linux
seo
app
asp及asp.net
flash
iis
java
mac
wap
windows
dos
其它
浏览器
网络
AD域
虚拟机
AC
简写翻译
欢迎各位兄弟 发布技术文章
这里的技术是共享的
个人技术网_前端_后台_php_div_css_linux_javascript_seo
搜索表单
搜索
用户登录
用户名
*
密码
*
重设密码
You are here
首页
突然发现一个问题,如果用touchstart替换了click 问题大了!?
星期二, 2016-08-16 11:41 —
adminshiping1
touchstart虽然替换click 或者用touchend替换click 虽然会减掉300ms的延迟
但是如果用户只是想滚动下拉框的时候会误点 一样触发了touchstart 和touchend 进入链接 这样太糟糕了但是如果用click就不会 用户滑动的时候不会误点不会触发
添加评论
分享
按投票排序
按时间排序
6 个回答
5
赞同
反对,不会显示你的姓名
Boringer
世事参透都入酒
5
人赞同
所以一般封装的所谓 tap 事件,都是 touchstart、touchmove、touchend 相结合,做出精细的判断,不是随便用 1 个事件就能轻松代替 click。
发布于 2015-09-26
添加评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
0
赞同
反对,不会显示你的姓名
felixgrey
WEB前端
监听touchend事件,如果中间触发touchmove事件并且位移超过一定值,视为有移动,不再触发自定义click事件
发布于 2015-09-30
添加评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
0
赞同
反对,不会显示你的姓名
子丶言
一只会炼金术的游吟诗人~
手机浏览器这是典型的点击穿透特性。
我最近的一个项目也遇到了类似的问题,当时也百思不得其解,最后在翻阅一些资料后了解到原来手机浏览器里的touch和click事件有这么坑爹的特性...这个300秒的延迟好像是全局性质的...
最快的解决方案是在绑定touch事件是使用
event.preventDefault
发布于 2015-09-26
5 条评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
4
赞同
反对,不会显示你的姓名
小芋头君
杭州C轮优秀团队招NodeJS和前端开发
4
人赞同
请查阅我们团队博客的文章:
《移动端点击、触碰随记》作者:郑淳 来自大搜车前端团队博客
发布于 2015-09-30
1 条评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
1
赞同
反对,不会显示你的姓名
Franklin杨
Test Thinker, Geeker, OS lover, hacker…
1
人赞同
为什么不搞一个基础库,把touchstart click等这些事件封装起来,允许前端可以混用呢?~
发布于 2015-09-28
添加评论
感谢
分享
收藏
•
没有帮助
•
举报
•
作者保留权利
1
赞同
反对,不会显示你的姓名
张者也
前端开发学徒
1
人赞同
Boring 已经回答了原理了,我补充一下。
具体解决方案,你去搜一下tap事件的实现方式就知道,要么自己封装一个tap事件或者用移动框架。当然了更简单的方案就是引入fastclick,方便简单。
来自
http://www.zhihu.com/question/35969725
普通分类:
javascript