防止滑动触发水龙头

时间:2015-07-14 22:14:55

标签: javascript ios hammer.js

我的网站移动版本上有一个下拉菜单。我正在附加单击和双击手势的处理程序。我想要默认其正常行为的所有其他手势。无论我尝试什么,滑动或平移的开始都会触发单击事件并相应地做出响应。这是我的代码:

$(document).ready(function () {
    var menuLinks1 = document.querySelectorAll(".menu.level1 a.item");
    for (var i = 0; i < menuLinks1.length; i++) {
      var menuLink1 = menuLinks1[i];
      if (menuLink1) {
        var hammerMgr = new Hammer.Manager(menuLink1);

        hammerMgr.add(new Hammer.Tap({ event: "doubletap", taps: 2 }));
        hammerMgr.add(new Hammer.Tap({ event: "singletap" }));
        hammerMgr.add(new Hammer.Tap({ event: "pan" }));
        hammerMgr.add(new Hammer.Tap({ event: "swipe" }));

        hammerMgr.get("pan").set({ direction: Hammer.DIRECTION_ALL });

        hammerMgr.get("doubletap").recognizeWith("singletap");
        hammerMgr.get("singletap").requireFailure("doubletap");
        hammerMgr.get("singletap").requireFailure("pan");
        hammerMgr.get("singletap").requireFailure("swipe");

        hammerMgr.on("doubletap", function (e) {
          doubletapMenuItem(e);
        });

        hammerMgr.on("singletap", function (e) {
          toggleSubmenu(e);
        });
      }
    }
  });

我错过了什么或做错了什么?我应该如何设置它以便滑动或平移不会触发敲击?

谢谢!

1 个答案:

答案 0 :(得分:0)

无法弄明白并且没有得到我的问题的任何答案,所以切换到SmartMenus并且它运作良好。