繁体   English   中英

阻止touchStart但允许单击事件

[英]Prevent touchStart but allow click events

我想防止touchStart事件,以防止Safari在某些情况下在iOS设备中反弹。

为此,我使用以下方法:

$('.wrapper').on('touchstart', function(e) {
    e.preventDefault();
});

但是现在所有点击事件都无法对其进行处理:

$('.wrapper').on('click', function() {
    $('.wrapper').text('Click fired');
});

在线复制

我无法将click事件替换为其他任何事件。 因为这可能来自最终用户。

在iOS 10之前的版本中, 可以通过仅阻止touchMove来避免touchMove但是自从iOS 10起,除非也避免了touchStart否则它将跳动。

有什么方法可以只阻止touchStart事件,而不能使用click事件?

我没有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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM