我想用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)。
可能的原因是什么?
答案 0 :(得分:1)
这可能是因为$('.touchzone')[0]
返回本机DOM对象,而不是jQuery对象。
要将jQuery与Hammer一起使用,您可以使用 jQuery Hammer 插件。
在jQuery之后包含它,然后你可以这样做:
$(document.body).hammer().on('release', '.touchzone', function(ev){
alert(ev.gesture);
});