为什么绑定hammer.js文件正文不起作用?

时间:2014-03-20 02:37:41

标签: javascript jquery javascript-events touch-event hammer.js

我想用hammer.js来捕捉移动触控输入。由于一些元素(例如,某些'li')是动态生成的,我想将hammer对象绑定到文档本身,并使用选择器来捕获事件。

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)。

可能的原因是什么?

1 个答案:

答案 0 :(得分:1)

这可能是因为$('.touchzone')[0]返回本机DOM对象,而不是jQuery对象。

要将jQuery与Hammer一起使用,您可以使用 jQuery Hammer 插件。

在jQuery之后包含它,然后你可以这样做:

$(document.body).hammer().on('release', '.touchzone', function(ev){
    alert(ev.gesture);
});