Объект hammer.js не имеет метода addEventListener

Я получаю сообщение об ошибке: Uncaught TypeError: Object [object Object] has no method 'addEventListener' hammer.js:168

мой код выглядит так:

<script type="text/javascript" src="js/hammer.js"></script>

В режиме готовности устройства:

 var resim = $('#kaydir');

 Hammer(resim).on('swipeleft', function(ev){
     console.log('left: ', ev);
 });

Кажется, что ошибка в hammer.js. Что мне делать?

Ответы

Ответ 1

Я предполагаю, что ваша проблема в том, что у вас нет Hammer.js jQuery Plugin (GitHub).

Из-за этого вы не можете передать объект jQuery в функцию Hammer(), ваши две опции:

С плагином jQuery

Добавьте плагин jQuery, с которым я связался выше, в ваш проект, затем звоните:

$('#kaydir').Hammer(...)

Без плагина jQuery

Передайте только элемент в Hammer(), а не объект jQuery, используя [0]:

Hammer(resim[0]).on(...)

Или вместо этого измените переменную resim, чтобы сохранить результат вызова JavaScript getElementById.

var resim = document.getElementById('kaydir');
Hammer(resim).on(...)

Ответ 2

Если вы используете jQuery, вы должны использовать версию jQuery Hammer и использовать ее так:

var resim = $("#kaydir");
resim.hammer().on("swipeleft", function(ev) {
    console.log('left: ', ev);
});