移动Webkit和Hammer JS上的多个元素响应触摸事件
我正在使用Hammer JS库开发一个小型项目,我在Chrome开发工具模拟器上遇到了一个问题,并在两个iOS 7设备上进行了debugging。 它似乎在桌面浏览器上正常工作。 小提琴在这里: http : //jsfiddle.net/w80baz5g/5/和更多信息下面。
我有一组元素,像这样:
<div> <img class="item" id="item0" src="http://placehold.it/300x300"> <img class="item" id="item1" src="http://placehold.it/300x300"> <img class="item" id="item2" src="http://placehold.it/300x300"> </div>
和Hammer JS听一个水龙头事件:
function initItems(el) { var itemToTap = new Hammer.Manager(el, itemOptions); itemToTap.add( new Hammer.Tap() ); itemToTap.on("tap", function(event) { console.log("tapped: " + event.target); }); } $(".item").each(function(){ var itemToInit = $(this)[0]; initItems(itemToInit); });
在桌面浏览器(Chrome,Safari)中,一切似乎都很好,在移动设备上,只有三个元素中的第一个似乎响应了点击事件,但控制台显示它响应所有三个元素? 第二和第三个元素根本没有响应。
小提琴: http : //jsfiddle.net/w80baz5g/5/
我错过了什么吗? 这些事件/元素是由移动浏览器区别对待的吗? 他们为什么不单独回应点击事件?
非常感谢!
代替:
$(".item").each(function(){ var itemToInit = $(this)[0]; initItems(itemToInit); });
尝试使用:
$(".item[id^='item']")...
要么:
$("[id^='item']")...
看看会发生什么