简体   繁体   English

防止滑动触发水龙头

[英]Prevent swipe triggering tap

I have a dropdown menu on the mobile version of my site. 我的网站的移动版本上有一个下拉菜单。 I am attaching handlers for the singletap and doubletap gestures. 我为单键和双键手势附加了处理程序。 All other gestures I want to default to their normal behavior. 我想将所有其他手势默认为正常行为。 No matter what I try, the beginning of a swipe or pan is triggering the singletap event and responding accordingly. 不管我尝试什么,滑动或平移的开始都会触发singletap事件并做出相应的响应。 Here is my code: 这是我的代码:

$(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);
        });
      }
    }
  });

What am I missing or doing wrong? 我想念什么或做错什么? How should I set this up so a swipe or pan doesn't trigger a tap? 我应该如何设置以便滑动或平移不会触发点击?

Thanks! 谢谢!

无法弄清楚,也没有得到我的问题的任何答案,因此切换到SmartMenus,并且效果很好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM