Jquery 为具有相同id的所有元素初始化Hammer.js

Jquery 为具有相同id的所有元素初始化Hammer.js,jquery,html,hammer.js,Jquery,Html,Hammer.js,我想使用hammer js为类似的帖子构建一个双标签手势。 Html: 它只适用于第一个元素,但不适用于所有元素。 如何为具有相同id的所有元素初始化Hammer js? JSFIDDLE: 谢谢你的帮助。它在hammer.js v1中的工作非常出色 但在新版本(2.0.4)中存在问题,$('figured')。toggleClass('liked')在双击后不起作用重复ID被视为无效(并且不是一个好的做法)。ID应该是唯一的。使用不同的方法,如类/标记名 :它在文档中必须是唯一的 在标记j

我想使用hammer js为类似的帖子构建一个双标签手势。 Html:

它只适用于第一个元素,但不适用于所有元素。
如何为具有相同id的所有元素初始化Hammer js?

JSFIDDLE


谢谢你的帮助。它在hammer.js v1中的工作非常出色


但在新版本(2.0.4)中存在问题,
$('figured')。toggleClass('liked')
在双击后不起作用

重复ID被视为无效(并且不是一个好的做法)。ID应该是唯一的。使用不同的方法,如类/标记名

:它在文档中必须是唯一的

在标记jQuery时提供jQuery解决方案

或者,按类替换重复的ID,并使用基于类的选择器

<figure class="img-item">

拨弄
$(this).toggleClass('..')
无效,因为
this
on()
中引用的是hammer对象而不是当前对象。

对于具有相同id的所有元素无效。改为使用类。检查下面或fiddle中的更新代码:它在hammer.jsv1中工作得很好,但在新版本(2.0.4)中不起作用。
var myElement = document.getElementById('img-item');
var mc = new Hammer(myElement);
mc.on("doubletap", function() {
    //myElement.toggleClass('liked');
    console.log('Double tap!');
    return false;
  });
$('figure').each(function(){   //tagname based selector
    var mc = new Hammer(this);
    mc.on("doubletap", function() {
        console.log('Double tap!');
        alert('Double tap!');
        //$(myElement).toggleClass('liked');
        return false;
    });
});
<figure class="img-item">
$('.img-item').each(function(){
    var $this = $(this);
    var mc = new Hammer(this);
    mc.on("doubletap", function() {
        console.log('Double tap!');
        alert('Double tap!');
        $this.toggleClass('liked');
        return false;
    });
});