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'); }); });