AngularJS ngTouch and ngSwipe throw error "TypeError: element.on is not a function"

AngularJS ngTouch and ngSwipe throw error "TypeError: element.on is not a function"

我正在使用 angular 1.4.0 和 jQuery v1.11.1。

我正在尝试使用 ngTouch/ngSwipe。两者都不会停止在应用程序加载时抛出错误 "TypeError: element.on is not a function"(在绑定函数内)。遗憾的是,我无法在 plunkr 中重现此错误,无论如何 ngSwipe 都会遇到该问题,时间:

    bind: function(element, eventHandlers, pointerTypes) {
       ...
    pointerTypes = pointerTypes || ['mouse', 'touch'];
    element.on(getEvents(pointerTypes, 'start'), function(event) {... <-- error here

我认为这对我的其他代码来说不是什么大问题,但我缺少某种依赖性。有人有想法吗?

提前致谢。

$on 方法是 angular.element 对象的一部分,而 on 方法是 jQuery 对象的一部分。有问题的 element 是一个 DOM 对象,它没有这样的方法。最接近的等价物是:

element.addEventListener(getEvents(pointerTypes, 'start'), function(event){} )

或:

$(element).on(getEvents(pointerTypes, 'start'), function(event){} )

参考资料