hammer.js和preventDefault();

myr*_*don 5 javascript jquery events hammer.js

js也支持触摸手势.我正在试图阻止默认行动.当我在锤子上设置event.preventDefaultevent.gesture.preventDefault()甚至应用参数时{prevent_defaults: true },它只会触发锚点上的默认操作.我怎样才能防止这种情况和/或我做错了什么?!

代码段;

function initializeNavigation() {
    $("nav").hammer({prevent_defaults: true }).on("tap", "a", function(event) {
        event.preventDefault();
        event.gesture.preventDefault();
        var target = $(this.hash);
        scrollToTarget(target, 1200);
        // if there is an open detailItem then close it.
        if (detailItemOpen) {
            $("div." + detailItemOpen).slideUp();
        }
    })

    if (Modernizr.mq('only screen and (max-width: 767px)'))  {
        initializeMobileMenuAndSetButton();
    }
}
Run Code Online (Sandbox Code Playgroud)

Pro*_*bat 0

我想你也可以尝试event.stopPropagation()一下event.gesture.stopPropagation()。但似乎 Hammer 给出了这种方法:event.gesture.stopDetect()对于类似的情况。

来源: https: //github.com/hammerjs/hammer.js/wiki/Event-delegation-and-how-to-stopPropagation---preventDefaults