首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止touchStart,但允许单击事件

阻止touchStart,但允许单击事件
EN

Stack Overflow用户
提问于 2016-10-18 03:53:08
回答 1查看 1.6K关注 0票数 0

我想阻止touchStart事件,以防止Safari在某些情况下在iOS设备上跳动。

为了做到这一点,我使用下面的代码:

代码语言:javascript
复制
$('.wrapper').on('touchstart', function(e) {
    e.preventDefault();
});

但是现在所有的点击事件都不起作用了:

代码语言:javascript
复制
$('.wrapper').on('click', function() {
    $('.wrapper').text('Click fired');
});

Reproduction online

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

在iOS 10之前,弹跳的could be avoided by preventing only touchMove,但从iOS 10开始,它将会弹跳,除非touchStart也被阻止。

有没有办法只阻止touchStart事件,而允许使用click事件?

EN

回答 1

Stack Overflow用户

发布于 2016-10-18 04:14:08

我没有可用的iOS 10进行试驾,这只是一个胡乱猜测,但请查看以下代码片段:

代码语言:javascript
复制
$('.wrapper').on('click touchstart', function(e) {
  if (e.type != 'click') {
    e.preventDefault();
  } else {
    $('.wrapper').text('Click fired');
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">asd</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40094570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档