5

我使用hammer.js 库创建一个事件,如下所示:

Hammer(myElement).on("doubletap", function(evt){
            evt.preventDefault();
        });

我怎样才能删除注册的事件?我也可以使用 Jquery 吗?

4

2 回答 2

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");
于 2013-03-15T08:30:23.950 回答
0

在hammer.js API 的文档中,声明它不会删除dom 事件,使用$(element).off() 不会解决您的问题,解决方法是使用hammer.js jquery 包装器,它们的使用 bind 函数在元素上注册事件。使用 unbind 删除所有或特定事件。

$(元素).hammer().unbind();

$(element).hammer().bind('swipeleft', 'swiperight', function(){});

包装器在这里:https ://github.com/hammerjs/jquery.hammer.js/blob/master/jquery.hammer.js

于 2020-05-02T15:16:20.403 回答