解决touchStart滑动时触发点击事件
由于我们在将点击事件委托到div,span,font,p等元素标签上时会导致移动端的ios设备无法识别这个点击事件(一般指click事件),
此时我们一般会使用touchstart来替换click事件,但是使用touchstart来代替click事件的弊端就立刻显示出来,每当我们滑动屏幕时就会立刻出发点击事件
此时加入我这个封装的方法,这个弊端就会迎刃而解
function tap(el,fn){var startPoint = {};el.addEventListener('touchstart', function(e) {startPoint = {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY};});el.addEventListener('touchend', function(e) {var nowPoint = {x: e.changedTouches[0].pageX,y: e.changedTouches[0].pageY};if(Math.abs(nowPoint.x - startPoint.x) < 5&&Math.abs(nowPoint.y - startPoint.y) < 5) {fn&&fn.call(el,e)}});
}
下面顺便讲一下当使用touchstart来替换click时,必须要记住一点:一定不要忘了添加 event.preventDefault();
但是问题又来了,添加 event.preventDefault();浏览器就会报错,
解决办法:
- 1、注册处理函数时,用如下方式,明确声明为不是被动的
window.addEventListener(‘touchmove’, func, { passive: false })
- 2、应用 CSS 属性 touch-action: none; 这样任何触摸事件都不会产生默认行为,但是 touch 事件照样触发。
.sortable-handler {touch-action: none;}
解决touchStart滑动时触发点击事件相关推荐
- Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法...
bug说明: Mint-ui中loadmore(上拉加载下拉刷新)组件 在 使用fastclick的情况下 ,在ios设备中滑动会触发点击事件: 解决方法: 我是按需引入,去项目中找到loadmore ...
- ajax点击事件无法触发,解决jQuery Ajax动态新增节点无法触发点击事件的问题_婳祎_前端开发者...
在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写οnclick="" ...
- 解决按钮点击后长按回车无限触发点击事件问题
思路: 包一层 UI 库的 button,在里面监听 onkeydown 和 onkeyup,用 flag 阻止长按回车一直触发. 然后在项目全局重新注册 el-button 覆盖掉UI内的按钮组件. ...
- 如何解决微信小程序用户高频率触发点击事件?
<view bindtap='debounce' bindtouchstart="touchStart" bindtouchend="touchEnd"& ...
- vue点击弹窗自动触发点击事件的解决办法
业务场景:使用vue +element ui 的el-dialog,点击弹窗之后,默认加载第一个按钮的数据进行初始化. div 指令: // 自动触发点击事件directives:{trigger:{ ...
- 解决datetimepicker不能触发点击事件,日期插件位置偏移,日期范围限制的问题
最初的问题: 一开始所遇到的问题是相对简单的,就是今天的日期是3-20,但是却可以选择20号之后的日期. html代码: <form action="web?module=stwmgr ...
- Vue在页面加载时自动触发点击事件
在按钮中添加 v-trigger <el-button v-for="data in formData" v-if="data.selectStatus === 1 ...
- 微信小程序长按事件触发点击事件的BUG处理
微信小程序开发说实话还是有点糟心的,经过事件冒泡的坑之后,又遇到了长按事件(longtap)必触发点击事件(tap)的BUG 实例代码 wxml <view class="contai ...
- view.performClick()触发点击事件
1.主要作用 自动触发控件的点击事件 2.界面的布局文件 activity_main.xml <RelativeLayout xmlns:android="http://schema ...
最新文章
- 根据时间点截取wav文件
- Qt QDialog将窗体变为顶层窗体(activateWindow(); 和 raise() )
- ElasticSearch bulk批量增删改语法(来自学习资料 + 自己整理,第27节)
- 克隆安装oracle,Oracle 之 Cloning $oracle_home (克隆安装oracle软件)
- windows下eclipse搭建android_ndk开发环境
- java 日志设计_Java日志设计实践(3) - 开发篇
- 水晶底是什么材质_蓝宝石水晶镜面,贵是有道理的!
- 使用python写程序时遇到的几个小问题
- leetcode article
- java垃圾回收GC(学习笔记)
- sqlserver openrowset mysql_sqlserver连接mysql
- ubuntu安装Nvidia-docker2详细步骤
- 现代数字信号处理第九章——盲信号处理
- bootstrap3 侧边导航栏
- 手机QQ文件存储位置
- list容器下的 emplace_front() splice() 函数
- 给python点颜色青少年学编程_给老师的新年祝福语
- 云计算的六大核心技术,你了解多少?
- sqlpython—正则表达式
- 付款条件(Payment Term)