移动端 touchend 事件怎么阻止冒泡?

Newb.综敏 阅读 3

我在做一个滑动删除功能,给列表项绑定了 touchend 事件,但点击后事件总是冒泡到父容器,导致触发了父级的点击逻辑。

试过在回调里加 e.stopPropagation(),但好像没用,是不是移动端得用别的方法?

item.addEventListener('touchend', function(e) {
  e.stopPropagation();
  // 删除逻辑
});
我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
Good“夏沫
嗯,移动端的事件处理有时候挺棘手的。你已经在 touchend 事件里尝试了 e.stopPropagation(),这通常是正确的做法。不过有时候事件冒泡还是会出现一些奇怪的行为,特别是在混合使用触摸事件和其他事件的时候。

确保你在 touchend 事件里也调用了 e.preventDefault(),这有时候能防止一些默认行为或者冒泡问题。试试看下面这个改写后的代码:

item.addEventListener('touchend', function(e) {
e.stopPropagation();
e.preventDefault(); // 阻止默认行为和冒泡
// 删除逻辑
});


这样应该可以解决你提到的冒泡问题。如果问题依旧存在,可能需要检查一下父容器是否有其他事件监听器或者样式影响了触摸行为。希望这能帮到你,有时候前端开发就是不断地调试和微调。
点赞
2026-03-25 02:00