jQuery函数不能与Hammer.js一起使用

我试图添加press到jQuery选择器。 我在同一个文档上有很多元素,所以我不能为每个元素使用ID。 我试过$(selector)[i]就像这里解释的那样。

 var selectProduct = $('.mh60 a'); for (var i = 0; i < selectProduct.length; i++) { Hammer(selectProduct[i]).on("press", function() { $(selectProduct[i]).addClass('active'); }); } 

它没有产生任何错误而且没有工作。 我没有得到我在这里失踪的东西。

当我尝试通过console.log(selectProduct[i]);记录selectProduct[i] console.log(selectProduct[i]); 它给出了undefined结果。

更新1

当我删除for循环并只使用selectProduct[0]selectProduct[1] ,…它正在工作,但是使用selectProduct[i] ,它不起作用,所以我认为问题是for循环。 但我没有得到它。

更新2

我也尝试过使用jQuery插件 ,同样的问题

更新3

我再次尝试了each()同样的问题。 它打印控制台消息,但addClass()不起作用。 我想问题是this函数没有返回当前元素。

 $('.mh60 a').each(function(){ var mc = new Hammer(this); mc.on("press", function() { console.log('Double tap!'); $(this).addClass('active'); }); }); 

你为什么用? 尝试更改这样的代码

 var selectProduct = $('.mh60 a'); selectProduct.Hammer().on("press", function() { $(this).addClass('active'); }); 

最后,我通过使用each函数解决了问题

 $('.mh60 a').each(function(){ var mc = new Hammer(this); var currentEle = $(this); mc.on("press", function() { currentEle.addClass('active'); }); });