jQuery方法.closest()无法在iOS设备上运行。我使用.closest()
和event.target
来检测点击的目标元素是否具有特定的祖先。不幸的是,这会在iOS设备上返回并出错。
HTML
<ul class="level-1">
<li><a href="#" class="item-1">Level 1 - Item 1</a></li>
<li><a href="#" class="item-2">Level 1 - Item 2</a></li>
<li><a href="#" class="item-3">Level 1 - Item 3</a></li>
</ul>
的jQuery
$('.item-1').on('touchstart', function(e) {
e.preventDefault();
console.log(e.target.closest('.level-1'));
});
错误
可以在jsfiddle找到实例。
答案 0 :(得分:3)
您正在调用dom元素closest method(e.target
是dom元素引用)这是一个实验性功能(仅由few browsers支持),需要调用用于跨浏览器兼容性的jQuery closest()方法
console.log($(e.target).closest('.level-1'));
答案 1 :(得分:0)
您还可以使用“$(this)”来查找最接近的元素。它基本上返回一个jquery对象来调用jquery的最近函数
$('.item-1').on('touchstart', function(e) {
e.preventDefault();
console.log($(this).closest('.level-1'));
});