我想阻止touchStart
个事件,以防止Safari在某些条件下在iOS设备中弹跳。
为此,我使用了以下内容:
$('.wrapper').on('touchstart', function(e) {
e.preventDefault();
});
但是现在没有任何点击事件可以使用它:
$('.wrapper').on('click', function() {
$('.wrapper').text('Click fired');
});
我不能将click
事件替换为任何其他事件。因为这可能来自最终用户。
以前在iOS 10中,弹跳could be avoided by preventing only touchMove
但是从iOS 10开始它将会反弹,除非{?1}被阻止。
有没有办法只阻止touchStart
事件但允许使用touchStart
事件?
答案 0 :(得分:1)
我没有iOS 10可用于测试驱动器,这是一个疯狂的猜测,但请检查此代码段:
$('.wrapper').on('click touchstart', function(e) {
if (e.type != 'click') {
e.preventDefault();
} else {
$('.wrapper').text('Click fired');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">asd</div>