设置点击事件时Unable to preventDefault inside passive event listener due to target being treated as passive
问题
当使用fastClick.js设置点击事件时,控制台报错:
[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080
意思是 无法被动监听事件中的默认事件.
preventDefault就是阻止事件的默认事件,如果设置了preventDefault,则form表单不会提交,a链接不会跳转
原因产生
AddEventListenerOptions defaults passive to false. With this change touchstart and touchmove listeners added to the document will default to passive:true (so that calls to preventDefault will be ignored)..
If the value is explicitly provided in the AddEventListenerOptions it will continue having the value specified by the page.
This is behind a flag starting in Chrome 54, and enabled by default in Chrome 56. See https://developers.google.com/web/updates/2017/01/scrolling-intervention
AddEventListenerOptions默认为被动为false。通过此更改,添加到文档中的touchstart和touchmove侦听器将默认为passive:true(以便忽略对preventDefault的调用)。。
如果AddEventListenerOptions中显式提供了该值,则它将继续具有页面指定的值。
这在Chrome 54开始的标志后面,在Chrome 56中默认启用。参见https://developers.google.com/web/updates/2017/01/scrolling-intervention
解决方案
- 添加监听事件选项{passive: false}
window.addEventListener('touch事件',[callback],{passive: false}); - 使用css属性
touch-action: none; 这样任何触摸事件都不会产生默认行为,而且touch事件还会触发
最新文章
- DrawerLayout 和 NavigationView 的使用
- GROUP_CONCAT将里面拼接的字符串排序
- HAProxy的日志配置以及ACL规则实现负载均衡
- 存储过程里面使用in变量列表异常的处理
- cuda-convnet windows8下编译
- ios上架
- 关于bootstrap--表单(下拉<;select>;、输入框<;input>;、文本域<;textare>;复选框<;checkbox>;和单选按钮<;radio>;)
- Spyder提示ValueError: API &#39;QString&#39; has already been set to version 1
- JS计算字符串长度(中文算2个)
- 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】
- ajax同步与异步的坑
- 吐血bug-- 多个input框接连blur事件导致alert接连弹出
- sprinbcloud学习之-Failed to bind properties under &#39;logging.level&#39; to java.util.Map<;java.lang.String>;
- nodejs + typescirpt + vs code
- sql多条件查询语句
- HDU3031 To Be Or Not To Be 左偏树 可并堆
- 不输入密码执行sudo 命令
- tkinter events format
- 查看修改MySQL字符集
- 在LaTeX中配置西夏文字体与环境