首页 > 解决方案 > 如何使用 Hammer.js 为识别器识别子节点上的事件

问题描述

我的场景:
-我有一个带有缩略图的侧边栏

我想要实现的目标:
- 滑动侧边栏以关闭它

我被卡住的地方:
- 在侧边栏上滑动可以正常工作,但是如果在图像缩略图上开始滑动,它不会注册为侧边栏上的平移事件,因此它仅在空格是原点时才有效刷卡

我没有使用 jquery,只是直接 JS + Hammer.js

function setupSidebar(elem){
  let sidebar = new Hammer.Manager(elem);
  sidebar.add(new Hammer.Pan({ direction: Hammer.DIRECTION_LEFT, threshold: 0}));
  sidebar.on('panstart',function(){ isPanning = false; });
  sidebar.on('pan',dragX);
}

以上是我如何将事件绑定到侧边栏本身。它是从一个循环中调用的,该循环简单地遍历具有特定类名的任何内容。

标签: javascripthammer.js

解决方案


我发现了这个问题。我使用 e.target 而不是 this,在实际代码运行中引用对象。这就是阻止子事件触发拖动的原因。


推荐阅读