我正在尝试使用Hammer.js并使用其类名而不是其ID选择元素。
但是,我的代码似乎只选择了具有类名的第一个元素,而忽略了具有相同类名的其余元素。
它也没有得到$(this).attr('id);由于某些原因!
这是一个工作的小提琴:
jsfiddle.net/cku6xap9 /
如果在第一个元素上向左滑动,则会看到未定义的警报,但是在其他元素上向左滑动时,则不会发生任何事情。
有人可以请教这个问题吗?
谢谢。
答案 0 :(得分:1)
您有一些错误:
document.querySelector
仅选择一个元素。请改用document.querySelectorAll
您正在全局声明hammer
,而不是为每个元素使用一个实例
$(this).attr('id');
中,this
是Hammer的上下文,而不是HTML元素尝试一下:
$('.box').each(function(){
var mc = new Hammer(this);
mc.on("swipeleft", function(e) {
var id = e.target.id;
alert(id)
});
});