我正在尝试将press
添加到jQuery选择器。我在同一个文档上有很多元素,所以我不能为每个元素使用ID。我尝试$(selector)[i]
,就像解释 here 一样。
var selectProduct = $('.mh60 a');
for (var i = 0; i < selectProduct.length; i++) {
Hammer(selectProduct[i]).on("press", function() {
$(selectProduct[i]).addClass('active');
});
}
它没有产生任何错误而且无法正常工作。我没有得到我在这里失踪的东西。
当我尝试按selectProduct[i]
记录console.log(selectProduct[i]);
时,会产生undefined
结果。
更新1
当我移除for循环并且只使用selectProduct[0]
,selectProduct[1]
,...它正在工作但是selectProduct[i]
,它不起作用,所以我认为问题是for循环。但我没有得到它。
更新2
我也尝试了jQuery plugin,同样的问题
更新3
我再次尝试each()
同样的问题。它会打印控制台消息,但addClass()
不起作用。我想问题是this
函数没有返回当前元素。
$('.mh60 a').each(function(){
var mc = new Hammer(this);
mc.on("press", function() {
console.log('Double tap!');
$(this).addClass('active');
});
});
答案 0 :(得分:0)
为什么使用for? 尝试像这样更改您的代码
var selectProduct = $('.mh60 a');
selectProduct.Hammer().on("press", function() {
$(this).addClass('active');
});
答案 1 :(得分:0)
最后,我使用each
函数
$('.mh60 a').each(function(){
var mc = new Hammer(this);
var currentEle = $(this);
mc.on("press", function() {
currentEle.addClass('active');
});
});