首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

双击事件(dblclick)时,不触发鼠标按下(mousedown) 动作事件

在一个dom节点的事件绑定中,如果同时绑定了dblclick和mousedown那么想要执行双击事件(dblclick)时能就会触发两次mousedown事件。...两者的区别是,mouseenter事件只触发一次,而只要鼠标在节点内部移动,mouseover事件会在子节点上触发多次。...在单击的时候(也就是鼠标按下的时候)不会执行双击,但是双击的时候会执行两次单击再执行双击事件。 解决的思路:要想双击时不执行单击事件,就使用定时器清除掉两个单击事件,留下一个双击事件。...因为第一次单击事件后,主线程没有任何任务,就会立马执行这个单击事件的任务。待第二次单击的时候,假设距离第一次单击事件是150ms, 如果你的定时器小于150ms, 那么第一次的任务队列就会执行完。...第一次单击任务不执行了,是被定时器延时,然后第二次点击的时候给清除了。那么第二次点击事件呢? 在两次单击之后,会立马执行一个双击事件,双击事件的一开头就把这个第二次点击事件给清除了。

74020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    双击事件与单击事件的那些事

    双击事件与单击事件的那些事 前言 项目遇到了双击事件会同时触发单击事件的bug,还是简单记录一下。 心里话:日更太累了。以前都是单独花好几天的时间去看别人的博客,看很多博客后再慢慢输出。..."); } function mydblclick() { console.error("双击事件"); } 图片 合情合理,双击事件也是两次点击事件,所以同时会触发单击事件click和双击事件...但是需求是单击和双击不同的处理,所以双击的时候不应该触发单击事件。 解决方案 思路:可以使用函数防抖的做法,单击事件触发后,开启一个定时器,双击事件触发的话就清除定时器。...el-checkbox使用注意点 双击事件和单击事件的问题处理完了,再加上一下下项目的踩坑点。 el-checkbox没有事件对象,平常的事件对象在el-checkbox上是布尔值,表示是否选中。...checked.value; } 图片 可以在直接修改绑定值的同时,手动调用change事件的处理函数来模拟触发change事件,不过,事件对象的传参就不太好模拟了。

    3.8K30

    JavaScript 技巧篇-js增加延迟时间解决单击双击事件冲突,双击事件触发单击事件

    js 的单双击事件同时存在会有一个问题:双击事件会同时触发单击事件,两个事件存在冲突。 我们加一个延迟时间就能很好的解决这个问题。...原理: 当接收到第一个点击时,我们先把单击事件存储在这个是全局变量 click_store 里,如果 0.3 秒内没有接收到双击事件,就去执行它,如果接收到了,我们把它清理掉,然后去执行双击事件。...setTimeout() 可以实现延迟执行。...('dblclick', deal_dblclick); function deal_click(e){ click_store = setTimeout(function(e){ // 单击触发事件...,0.3s延迟 ... },300); } function deal_dblclick(e){ // 单击事件清理 clearTimeout(click_store); // 双击触发事件

    6.1K30

    【黄啊码】MySQL入门—17、在没有备份的情况下,如何恢复数据库数据?

    我是黄啊码,MySQL的入门篇已经讲到第16个课程了,今天我们继续讲讲大白篇系列——科技与狠活之恢复数据库在没做数据库备份,没有开启使用 Binlog 的情况下,尽可能地找回数据。...如果.ibd 文件损坏了,数据如何找回如果我们之前没有做过全量备份,也没有开启 Binlog,那么我们还可以通过.ibd 文件进行 数据恢复,采用独立表空间的方式可以很方便地对数据库进行迁移和分析。...下面我们就来看下没有做过备份,也没有开启 Binlog 的情况下,如果.ibd 文件发生了损 坏,如何通过数据库自身的机制来进行数据恢复。...在模拟损坏.ibd 文件之前,我们需要先关闭掉 MySQL 服务,然后用编辑器打开 t1.ibd,类似下图所示: 文件是有二进制编码的,看不懂没有关系,我们只需要破坏其中的一些内容即可,比如我在 t1....我刚才讲过这里使用 MyISAM 存储引擎是因为 在innodb_force_recovery=1的情况下,无法对 innodb 数据表进行写数据。

    5.9K40

    【DB笔试面试849】在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何获取ORACLE_HOME目录?

    ♣ 问题 在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何快速获取数据库软件的ORACLE_HOME目录?...product/11.2.0/dbhome_1 [oracle@edsir4p1-PROD2 ~]$ sqlplus -v SQL*Plus: Release 11.2.0.1.0 Production 若没有配置...,则可以通过pmap命令来查看ORACLE_HOME的路径,pmap提供了进程的内存映射,用于显示一个或多个进程的内存状态。...资料:https://mp.weixin.qq.com/s/Iwsy-zkzwgs8nYkcMz29ag ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用 ● 作者博客地址:http://...blog.itpub.net/26736162/abstract/1/ ● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解 ● 版权所有,欢迎分享本文,转载请保留出处

    2K50

    在 React 16 中从 setState 返回 null 的妙用

    概述 在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态。在调用 .setState 时返回 null 将不再触发更新。...问题 现在的问题是,即使状态没有改变,mocktail 状态也会被更新,同时触发重新渲染 Mocktail 组件。...React 16 对状态性能进行了改进,如果新的状态值与其现有值相同的话,通过在 setState 中返回 null 来防止来触发更新。 ?...解决方案 以下是我们将要遵循的步骤,来防止不必要的重新渲染: 检查新的状态值是否与现有值相同 如果值相同,我们将返回 null 返回 null 将不会更新状态和触发组件重新渲染 首先,在 app 组件的...但是,如果我们再次单击同一个mocktail按钮,React 不会重新渲染 Mocktail 组件,因为 setState 返回 null,所以状态没有改变,也就不会触发更新。

    14.6K20

    JS DOM学习笔记

    页面加载后触发):网页加载完毕时触发,浏览器是一边下载文档、一边解析执行,可能会出现JavaScript执行时需要操作某个元素,这个元素还没有加载,如果这样就要把操作的代码放到body的onload事件中...元素的onload事件是元素自己加载完毕时触发,body onload才是全部加载完成。...(鼠标离开元素范围)、onmouseover(鼠标移动到元素范围)、onmouseup(鼠标按键释放)、oncontextmenu(在浏览器中单击鼠标右键显示‘右键菜单’时触发) 9、window.location...获取网页中那个元素触发了事件,在IE中使用srcElement; 在FireFox里使用target 使用Dom获取和更改网页标签元素内文本,在IE中使用innerText; 在FireFox里使用textContent...的不同 14、jQuery的ready和Dom的onload的区别:window.onload只能注册一次,是在所有的Dom元素创建完毕、图片、CSS都加载完毕后才被触发;而jQuery的ready则是在

    4K40

    读Zepto源码之Touch模块

    正常情况下,touch 对象会在 touchEnd 或者 cancel 的时候清空,但是如果用户自己调用了 preventDefault 等,就可能会出现没有清空的情况。...可以看到,起点和终点的距离超过 30 时,会被判定为 swipe 滑动事件。 在触发完 swipe 事件后,立即触发对应方向上的 swipe 事件。...注意,swipe 事件并不是在 end 系列事件触发时立即触发的,而是设置了一个 0ms 的定时器,让事件异步触发,这个有什么用呢?后面会讲到。...start 时确定的,上面已经分析过了,在 end 的时候触发 doubleTap 事件。...因为在 scroll 的时候,肯定是只想响应滚动的事件,异步触发是为了在 scroll 的过程中和外界调用 cancelTouch 方法时, 可以将事件取消。

    93100

    【移动端】touch事件及穿透事件

    bug收集:专门解决与收集bug的网站 网址:www.bugshouji.com touch 事件的来历 2007 苹果推出iphone,浏览器网页在iphone上显示时字体特别小,根本看不清楚...苹果的解决方案: 方案一:双指进行缩放 方案二:在屏幕上双击进行放大(单击300ms后,再单击才算双击),造成了,移动端点击事件,300ms 延迟的问题 解决方案,就是使用touch事件来替代 移动端新增...,e.target都是开始时触摸的元素dom....因click是在touch系列事件发生后300ms才触发的,混用click和touch肯定会导致穿透问题....点击穿透现象的情况: 1) 蒙层问题 蒙层的关闭按钮绑定的是touch事件,而按钮下面元素绑定的是click事件,touch事件触发后,蒙层消失,300ms后这个点的click事件触发。

    2.1K10

    移动端点击事件延迟的诞生消亡史

    然而,由于这种双击缩放的操作,在用户第一次单击页面元素时,浏览器并不知道用户是想做双击缩放操作还是普通的单击操作。...因此,IOS Safari 浏览器首先引入了 300 毫秒延迟,用来判断用户是否会再次点击,也就是说,在第一次点击延迟 300 毫秒,300 毫秒后用户没有再次点击则认定为用户在进行普通的单击操作,并触发单击..."> 约定当 Viewport 的 width 小于或等于 device-width 时,去除双击缩放功能。...根据规范,CSS 属性 touch-action 用于设置触摸屏用户如何操纵元素的区域(例如,浏览器内置的缩放功能)。...任何其它被 touch-action: auto 支持的行为不被支持。启用平移和双指缩放手势,但禁用其他非标准手势,例如双击缩放。 禁用双击缩放功能可减少浏览器在用户点击屏幕时延迟生成点击事件的需要。

    2.9K20

    Cypress系列(18)- 可操作类型的命令 之 点击命令

    click:单击 dbclick:双击 rightclick:右键 .click() 的语法和用法 单击某个元素 六种基础语法格式 // 单击某个元素 .click() // 带参数的单击 .click...Test Runner 的快照找到阻止 DOM 元素交互的情况,但某些情况下可能会阻碍测试的进行 比如:有一个嵌套的导航结构,用户必须将鼠标 hover 在一个非常特定的模式中,才能拿到所需的链接 当测试时...当使用 force 时,将执行这些操作 继续执行所有默认操作 强制在元素上触发事件 当使用 force 时,将不会执行这些操作 滚动到视图中 确保可见 确保未禁用 确保没有分离 确保它不是只读的 确保它没有动画...cy.get(' ul > li ') 共匹配四个 DOM 元素,他们均触发单击操作 单击组合键 .click() 命令还可以与 .type() 命令结合使用修饰符来触发组合键操作,以便在单击时结合键盘操作...在命令日志中单击 click 时,控制台console 将输出以下鼠标事件 ? 结尾 本文是博主基于对蔡超老师的《Cypress 从入门到精通》阅读理解完后输出的博文,并附上了自己的理解

    2.3K10

    从一个超时程序的设计聊聊定时器的方方面面

    在开发中如何选择使用合适的定时器? 有没有一键回收所有定时器的方法? 如何理解定时器中的this对象?...第三个及以后的参数args是不定参数,是在定时器触发时向参数1传递的实参。 setInterval返回的是定时器ID,这个ID在单程度内是唯一的且是递增的。...遇到交互操作时,例如通过键盘敲入了字符,或单击了鼠标,此时协线程会将按键回调函数、鼠标单击回调函数添加到主线程作业栈尾部。会推迟到下一代执行,也可能是下下代。...在不涉及界面的情况下,处理相互依赖的并发操作,使用Promise是首选,其它情况下使用setTimeout(fn, 0)最简单。 如何判断H5程序是从后台台恢复过来的? 定时器的时间是一成不变的吗?...因为线程被阻塞,定时器没有在应该触发的时间被触发,看起来像是被丢弃了,这便是定时器的丢弃行为。从本质上看,丢弃行为和延时行为是一致的。 从这点来看,也说明定时器的时间是靠不住的。

    1.4K20

    防抖和节流

    source=cloudtencent 提示 防抖和节流一般在做用户体验优化的时候会用上。 什么是防抖? 是指一个事件在同一时间内被多次频繁触发后,最终只会执行一次。...() { console.log('鼠标单击触发') }, 1000) } document.addEventListener('click', click) 应用场景 提交按钮...浏览器窗口缩放:在一些特定时候需要监听浏览器窗口变动,变动后重新渲染页面,使用防抖可以防止重复渲染。 什么是节流? 在规定时间内,该事件只会被触发第一次。后续触发的事件将会被忽略,直到计时结束。...() { console.log('鼠标单击触发') isLock = false }, 1000) } document.addEventListener(...'click', click) 应用场景 搜索框联动查询:用户在搜索框输入内容值,可定时查询接口返回展示的内容。

    26400

    不完美解决click和dblclick事件冲突问题

    情况描述   当某个元素,如:div,同时绑定了click事件和dblclick事件,而这两个事件又要处理相对独立的业务,也就是click的时候不能触发dblclick,dblclick的时候不能触发click...-- mouseup -- click -- mousedown -- mouseup -- click -- dblclick   由此看来,在dblclick触发之前,实际上是执行了2次click...解决方案   最先想到的是否可以停止事件,但发现浏览器并未提供相应方法,如果自己去实现难度太大,因为单击事件所关联的行为必须做成是可以被cancel的才行。   ...于是考虑用延迟,也是我唯一能想到的解决办法,利用setTimeout()来延迟完成click事件的处理,然后在需要屏蔽click的时候用clearTimeout()来停止。...(其他系统不清楚),所以我设置系统设置的双击速度较慢,则上面那个demo就不生效了。

    1.4K20

    10-移动端开发教程-移动端事件

    由于双击缩放功能存在,click事件触发就会有大约200~300ms的延迟。 1.2 dblclick事件失效 由于双击缩放的存在,pc端的dblclick事件也失效了。 2....最基本的touch事件包括4个事件: touchstart: 当在屏幕上按下手指时触发 touchmove: 当在屏幕上移动手指时触发 touchend: 当在屏幕上抬起手指时触发 touchcancel...2.1 touch事件与click事件同时触发 在很多情况下,触摸事件和鼠标事件会同时被触发(目的是让没有对触摸设备优化的代码仍然可以在触摸设备上正常工作)。...因为双击缩放检测的存在,在移动设备屏幕上点击操作的事件执行顺序: touchstart(瞬间触发) → touchend → click(200-300ms延迟) 如果你使用了触摸事件,可以调用 event.preventDefault...如何用户的手指从触屏设备的边缘移出了触屏设备,也会触发 touchend 事件。 touchend 事件的 target 也是与 touchstart 的 target 一致,即使已经移出了元素。

    6.8K80

    Android之按钮点击事件(单击、双击、长按等)

    在布局文件中添加按钮点击事件 在java文件中添加按钮点击事件 为多个按钮添加点击事件 按钮按下、释放事件 按钮长按事件 按钮长按时过滤掉单击事件 按钮双击事件 按钮双击时过滤掉单击事件 在布局文件中添加按钮点击事件..."showMsg"即为用户点击屏幕按钮时触发方法的名字。...,因为按钮长按时仍然会触发点击事件。如果只需要处理长按事件的话则不需考虑这一点,如果要在同一个按钮单击或长按时处理不同的内容,则需在长按时过滤掉单击事件。...,因为按钮双击时仍然会先触发单击事件。如果只需要处理双击事件的话则不需考虑这一点,如果要在同一个按钮单击或双击时处理不同的内容,则需在双击时过滤掉单击事件。...按钮双击时过滤掉单击事件 双击时过滤单击事件的思路可参考以前在Qt中的应用(QML之MouseArea双击时过滤掉单击事件):在按钮点击时开启定时器,判断300ms内有没有第二次点击,有的话表示双击,

    2.4K20

    10-移动端开发教程-移动端事件

    由于双击缩放功能存在,click事件触发就会有大约200~300ms的延迟。 1.2 dblclick事件失效 由于双击缩放的存在,pc端的dblclick事件也失效了。 2....最基本的touch事件包括4个事件: touchstart: 当在屏幕上按下手指时触发 touchmove: 当在屏幕上移动手指时触发 touchend: 当在屏幕上抬起手指时触发...2.1 touch事件与click事件同时触发 在很多情况下,触摸事件和鼠标事件会同时被触发(目的是让没有对触摸设备优化的代码仍然可以在触摸设备上正常工作)。...因为双击缩放检测的存在,在移动设备屏幕上点击操作的事件执行顺序: touchstart(瞬间触发) → touchend → click(200-300ms延迟) 如果你使用了触摸事件,可以调用 event.preventDefault...2.4 touchend事件 ​ 当用户的手指抬起的时候,会触发 touchend 事件。如何用户的手指从触屏设备的边缘移出了触屏设备,也会触发 touchend 事件。

    6.4K70
    领券