jQuery 使用了.preventDefault() 后导致a标签不能用?

我使用了

    el.addEventListener("touchmove", handleMove, false);
    el.addEventListener("touchstart", handleStart, false);
    el.addEventListener("touchend", handleEnd, false);

这三个,制作了一个轮播图效果,因为我在move过程中,touch会导致网页上下滑动,所以我使用 .preventDefault() 屏蔽了网页各种滑动。但是出现了连a标签默认的事件都GG了。我应该如何处理。

我整理了下思绪,我要解决的问题,应该是,如何在touch上判断这个是点击还是滑动,现在我可以通过计算start和end距离,但是判断出来后我要如何操作才能打开a标签呢?

阅读 4.1k
2 个回答

在 preventDefault() 执行时, 判断下 event.target, 如果是 a 或者 其他 你想放过的, 就不执行

在出发touchmove的时候,去检测上下滑动的距离,如果大于设定值,就阻止touchmove的默认行为。手机上的事件应该都是基于touch事件的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题