我使用hammer.js库创建一个事件,如下所示:
Hammer(myElement).on("doubletap", function(evt){
evt.preventDefault();
});
如何删除注册事件?我还可以使用Jquery吗?
答案 0 :(得分:16)
只是Hammer(myElement).off(eventName);
如果你想使用jQuery,那么语法是:
$(myElement).hammer().on(eventName, callback)
如果要为事件指定“命名空间”,则声明例如。
$(myElement).hammer().on("tap.namespace", callback);
$(myElement).hammer().on("tap.anotherNamespace", callback2);
这使得只能分离所需的事件,例如:
$(myElement).hammer().off("tap.anotherNamespace");
答案 1 :(得分:0)
hammer.js API文档中声明不会删除dom事件, 使用$(element).off()不能解决您的问题,一种解决方法是使用Hammer.js jQuery包装器,使用bind函数将它们的事件注册在元素上。使用取消绑定删除所有或特定事件。
$(element).hammer()。unbind();
$(element).hammer()。bind('swipeleft','swiperight',function(){});
包装器在这里:https://github.com/hammerjs/jquery.hammer.js/blob/master/jquery.hammer.js