gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:16 25 4
gpt4 key购买 nike

我想使用 hammer js 为喜欢的帖子构建双 Tab 手势。HTML :

<div class="gitem-wrap row">
<div class="gitem">
<div class="well">
<figure id="img-item"><img src="images/2.jpg" class="img-responsive"></figure>
<article>
...
</article>
</div>
</div>
<div class="gitem">
<div class="well">
<figure id="img-item"><img src="images/2.jpg" class="img-responsive"></figure>
<article>
...
</article>
</div>
</div>
</div>

Js 初始化 Hammer js :

var myElement = document.getElementById('img-item');
var mc = new Hammer(myElement);
mc.on("doubletap", function() {
//myElement.toggleClass('liked');
console.log('Double tap!');
return false;
});

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

JSFIDDLE:http://jsfiddle.net/ekdfokc5/

感谢您的帮助。它在 hammer.js v1 中表现出色
http://jsfiddle.net/ekdfokc5/3
但在新版本 (2.0.4) 中存在问题,$('figured').toggleClass('liked') 在双击后无法正常工作。
http://jsfiddle.net/ekdfokc5/4

最佳答案

重复的 ID 被视为无效(这不是一个好的做法)。 ID 应该是唯一的。使用不同的方法,如 class/TagName。

MDN source : Element.id : 在文档中必须是唯一的

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

Updated Fiddle

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

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

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

$(this).toggleClass('..') 的 fiddle 不起作用,因为 on() 中的 this 指的是 hammer对象而不是当前对象。

关于jquery - 为具有相同 id 的所有元素初始化 Hammer.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30023337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com