AngularJS ngTouch和ngSwipe抛出错误“TypeError:element.on不是函数”

时间:2015-12-15 15:43:19

标签: angularjs debugging event-handling onload angularjs-ng-touch

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

我正在尝试使用ngTouch / ngSwipe。两者都不会停止在app加载(在bind-function内)抛出错误“TypeError:element.on不是函数”。可悲的是,我无法在一个plunkr中重现这个错误,无论如何ngSwipe遇到了这个问题,在以下情况下:

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

我不认为这对我的其他代码来说太过分了,但是我错过了某种依赖。有人有想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

或:

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

<强>参考