hammer.js对象没有方法addEventListener

hda*_*ayi 15 javascript hammer.js

我收到错误: Uncaught TypeError: Object [object Object] has no method 'addEventListener' hammer.js:168

我的代码是这样的:

<script type="text/javascript" src="js/hammer.js"></script>
Run Code Online (Sandbox Code Playgroud)

设备就绪功能:

 var resim = $('#kaydir');

 Hammer(resim).on('swipeleft', function(ev){
     console.log('left: ', ev);
 });
Run Code Online (Sandbox Code Playgroud)

似乎错误在hammer.js中.我该怎么办?

Jam*_*lly 29

我想你的问题是你没有安装Hammer.js的jQuery插件(GitHub).

因此,您无法将jQuery对象传递给Hammer()函数,这两个选项:

使用jQuery插件

将我上面链接的jQuery插件添加到您的项目中,然后调用:

$('#kaydir').Hammer(...)
Run Code Online (Sandbox Code Playgroud)

没有jQuery插件

通过使用以下方法,只将元素传入Hammer()而不是jQuery对象[0]:

Hammer(resim[0]).on(...)
Run Code Online (Sandbox Code Playgroud)

或者更改您的resim变量以保存调用JavaScript的结果getElementById.

var resim = document.getElementById('kaydir');
Hammer(resim).on(...)
Run Code Online (Sandbox Code Playgroud)

  • 无论 Hammer 的 jQuery 插件是否被拉动,将 jQuery 对象传递给 Hammer() 都不起作用。但仅传递答案中的元素,例如。`a=new Hammer($('.test')[0])` 工作正常。 (2认同)