mousedown、mouseup、click

1、触发时机

  • mouseddown:鼠标移动到元素上方,并按下鼠标时触发,不区分左右键。
  • mouseup:在元素上松开鼠标时触发,不区分左右键。
  • click:鼠标停留在元素上方,按下鼠标左键,并且松开鼠标左键时触发,区分左右键。

2、触发顺序

  • 左键:在同一个元素上按下、并松开,会依次触发mousedown、mouseup、click,前一个事件执行完才会执行下一个事件。
  • 右键:在同一个元素上按下、并松开,会依次触发mousedown、mouseup,前一个事件执行完才会执行下一个事件。

3、场景

一般是用mousedown+mousemove配合做拖拽等,用click做点击,但是如果这两个事件同时存在的时候,执行click的时候会有干扰,因此建议用mousedown+mousemove+mouseup配合,在mouseup中判断是拖拽还是点击,不需要注册click。

// 如果鼠标移动,则是拖拽事件,如果鼠标不移动,则是点击事件
var isMove;
div.addEventListener('mousedown', (e) => {
    isMove = false;
})
div.addEventListener('mousemove', (e) => {
    isMove = true;
})
div.addEventListener('mouseup', (e) => {
    if (!isMove) {
       // 鼠标不移动,则为点击
       // .......
    }
})

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-24 16:02:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-24 16:02:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-24 16:02:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-24 16:02:01       18 阅读

热门阅读

  1. 汇编中MACRO ENDM与C语言中的#define理解与对比

    2024-01-24 16:02:01       37 阅读
  2. 自然语言处理(NLP)

    2024-01-24 16:02:01       35 阅读
  3. 大语言模型(LLM)有哪些?

    2024-01-24 16:02:01       40 阅读
  4. K8S的HPA

    K8S的HPA

    2024-01-24 16:02:01      30 阅读
  5. 设计模式-享元模式

    2024-01-24 16:02:01       30 阅读
  6. AI存在信任问题,区块链能提供帮助吗?

    2024-01-24 16:02:01       30 阅读
  7. spring和springboot的区别

    2024-01-24 16:02:01       42 阅读
  8. Spring Boot Banner 教程:自定义启动画面的艺术

    2024-01-24 16:02:01       42 阅读
  9. 23种设计模式概述

    2024-01-24 16:02:01       32 阅读