myr*_*don 5 javascript jquery events hammer.js
js也支持触摸手势.我正在试图阻止默认行动.当我在锤子上设置event.preventDefault或event.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)
我想你也可以尝试event.stopPropagation()一下event.gesture.stopPropagation()。但似乎 Hammer 给出了这种方法:event.gesture.stopDetect()对于类似的情况。
来源: https: //github.com/hammerjs/hammer.js/wiki/Event-delegation-and-how-to-stopPropagation---preventDefaults