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上找到实时示例。

最佳答案

您正在调用dom元素的closest method(e.target是dom元素引用),这是一项实验性功能(仅受few browsers支持),需要调用jQuery closest()方法以实现跨浏览器兼容性

console.log($(e.target).closest('.level-1'));

关于javascript - jQuery .closest()方法在iOS设备上返回未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31514124/

10-11 14:22