Почему не работает привязка hammer.js к телу документа?

0

Я хочу использовать hammer.js для захвата мобильных сенсорных входов. Поскольку некоторые элементы (например, некоторые "li") динамически генерируются, я хочу привязать объект молота к самому документу и использовать селектор для захвата событий.

var hammer=Hammer(document.body);
hammer.on("release",'.touchzone',function(ev){
  alert(ev.gesture);
});

Вышеприведенный код не работает - предупреждение отсутствует, и функция не вводится. Однако я непосредственно привязал объект молота к элементу div.touchzone.

var hammer=Hammer($('.touchzone')[0]);
hammer.on("release", function(ev){alert(ev.gesture);});

Я использую jQuery 1.11.0 и v1.0.9 hammer.min.js (размером ~ 13kb).

Какая может быть возможная причина?

Теги:
javascript-events
hammer.js
touch-event

1 ответ

1
Лучший ответ

Вероятно, потому что $('.touchzone')[0] возвращает собственный объект DOM, а не объект jQuery.

Чтобы применить jQuery вместе с Hammer, вы можете использовать плагин jQuery Hammer.

Включите его после jQuery, тогда вы можете сделать:

$(document.body).hammer().on('release', '.touchzone', function(ev){
    alert(ev.gesture);
});
  • 0
    Да. Я не импортировал jquery.hammer, поэтому он не мог использовать селектор таким образом. С плагином, он теперь может работать в браузерах. Ну, я использую его в мобильных приложениях PhoneGap, и в приложении написано, что у объекта нет метода «молотка» ... В любом случае, я сам попробую захватить события с помощью слушателей touchstart, touchend и т. Д. ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню