jQuery 函数不适用于 Hammer.js
jQuery functions not working with 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]
时,它给出了 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');
});
});
为什么要使用 for?
尝试像这样更改您的代码
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');
});
});
我正在尝试将 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]
时,它给出了 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');
});
});
为什么要使用 for? 尝试像这样更改您的代码
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');
});
});