TouchMove 事件中 preventDefault 无效是怎么回事?
我在做一个移动端的滑动删除功能,监听了 touchmove 事件,想阻止页面滚动,但调用 e.preventDefault() 完全没用,页面还是跟着手指上下滚。我试过在 touchstart 里也加 preventDefault,还检查了是不是用了 passive 事件监听,但问题依旧。
我的代码大概是这样的:
element.addEventListener('touchmove', (e) => {
e.preventDefault();
// 处理滑动逻辑
}, { passive: false });
难道是浏览器默认行为优先级太高了?还是我哪里漏了?
另外检查下是不是有父元素阻止了事件冒泡,有的话直接在document上监听。