如何绑定touchstart和click事件,但不响应这两个事件

要绑定touchstartclick事件,但不响应这两个事件,可以通过以下步骤:

  1. 安装fastclick库,可以通过npm i fastclick命令进行安装;

  2. 在需要绑定touchstartclick事件的页面或组件中引入fastclick

<script src="path/to/fastclick.js"></script>

或者在组件中使用import引入:

import FastClick from 'fastclick';
  1. 在页面加载完成后对document进行绑定:
if ('addEventListener' in document) {
    document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
    }, false);
}

这样,touchstartclick事件就会被fastclick监听并阻止默认行为,从而部分的解决了移动端点击延迟的问题。

如果想更加彻底的禁止touchstartclick事件的默认行为,可以在将fastclick库引入后,在相应的元素上进行样式覆盖,即:

/* 禁用默认 tap/highlighted 状态 */
a, button, input, select, textarea {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: rgba(0,0,0,0);
    tap-highlight-color: transparent;
}
/* 禁用 tap 内容滚动 */
* {
    touch-action: manipulation;
}

这样,就可以完全禁止touchstartclick事件的默认行为,确保没有任何响应。

示例一:

在以下代码中绑定touchstartclick事件:

const button = document.querySelector('.button');
button.addEventListener('touchstart', function() {
    console.log('touchstart');
});
button.addEventListener('click', function() {
    console.log('click');
});

使用fastclick处理:

if ('addEventListener' in document) {
    document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
    }, false);
}

示例二:

在以下代码中绑定touchstart事件:

const button = document.querySelector('.button');
button.addEventListener('touchstart', function() {
    console.log('touchstart');
});

使用样式禁止默认行为:

/* 禁用默认 tap/highlighted 状态 */
.button {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: rgba(0,0,0,0);
    tap-highlight-color: transparent;
}
/* 禁用 tap 内容滚动 */
* {
    touch-action: manipulation;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何绑定touchstart和click事件,但不响应这两个事件 - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • QueryPath PHP 中的jQuery

    QueryPath是一个用PHP编写的Query语言库,类似于jQuery,可以用来处理HTML和XML文档,能够方便地用查询和转换操作操作文档。以下是QueryPath在PHP中使用的完整攻略: 安装 使用QueryPath之前,需要先把它安装到项目中。可以通过Composer进行安装。执行以下命令在项目中安装QueryPath: composer req…

    jquery 2023年5月27日
    00
  • jQuery对象和DOM对象相互转化

    jQuery对象和DOM对象是两种不同的Javascript对象,它们具有不同的属性和方法。当我们需要在jQuery和DOM之间进行交互时,就需要进行jQuery对象和DOM对象的相互转化。下面是进行转化的方法和示例: 将DOM对象转化为jQuery对象 我们可以使用jQuery函数将DOM对象转化为jQuery对象,例如: // 获取DOM对象 var d…

    jquery 2023年5月28日
    00
  • jQWidgets jqxDateTimeInput dropDownVerticalAlignment属性

    以下是关于“jQWidgets jqxDateTimeInput dropDownVerticalAlignment属性”的完整攻略,包含两个示例说明: 简介 jqxDateTimeInput 控件的 dropDownVerticalAlignment 属性用于设置日期时间选择器下拉框的垂直对齐方式。 完整攻略 以下是 jqxDateTimeInput 控件…

    jquery 2023年5月11日
    00
  • jQWidgets jqxNavigationBar disabled属性

    以下是关于 jQWidgets jqxNavigationBar 组件中 disabled 属性的详细攻略。 jQWidgets jqxNavigationBar disabled 属性 jQWidgets jqxNavigationBar 的 disabled 属性用于禁用整个导航栏或指定项。 语法 // 禁用整个导航栏 $(‘#navigationBar…

    jquery 2023年5月12日
    00
  • jQuery callbacks.has()方法

    在jQuery中,可以使用callbacks.has()方法来检查回调函数列表中是否存在指定的回调函数。以下是详细攻略,含两个示例,演示如何使用callbacks.has()方法: 语法 callbacks.has()方法语法如下: callbacks.has(callback); 参数说明: callback:必需,要检查的回调函数。 返回值: 如果回调函…

    jquery 2023年5月9日
    00
  • jQWidgets jqxRibbon animationDelay属性

    下面详细讲解一下“jQWidgets jqxRibbon animationDelay属性”的完整攻略。 简介 jQWidgets jqxRibbon是一个基于jQuery的UI组件,提供了丰富的Ribbon控件,可以轻松快速创建类似Microsoft Office界面的富客户端应用程序。其中animationDelay属性可以控制Ribbon控件的动画效果…

    jquery 2023年5月11日
    00
  • 使用jQuery和维基百科OpenSearch API进行自动完成搜索

    使用jQuery和维基百科OpenSearch API进行自动完成搜索,可以使用户在输入查询词时,自动显示出匹配的搜索结果,提升网站用户体验。以下是实现该功能的完整攻略: 第一步:引入jQuery库 在HTML文档中加入以下代码引入jQuery库: <script src="https://ajax.googleapis.com/ajax/l…

    jquery 2023年5月13日
    00
  • 如何用jQuery删除jQuery UI对话框中的关闭按钮

    当我们需要从jQuery UI对话框中移除关闭按钮时,我们可以使用jQuery来实现。下面是一个详细的攻略,包含两个示例说明。 步骤 引入 UI 在HTML中,需要引入jQuery UI库CSS和JavaScript文件。使用CDN或本地进行引入。以下是一个示例: <head> <title>My jQuery App</tit…

    jquery 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部