jQuery .closest()方法在iOS设备上返回undefined

时间:2015-07-20 10:25:36

标签: javascript jquery ios

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

错误

enter image description here

可以在jsfiddle找到实例。

2 个答案:

答案 0 :(得分:3)

您正在调用dom元素closest methode.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'));
});