MarginLon MarginLon
首页
  • Web

    • Web基础
    • Web布局
    • CodeSnippet
  • Vue

    • Vue
  • React

    • React
  • Node.js

    • Node.js
  • 技术文档
  • UI组件库
  • 动画库
  • 图形库
  • 桌面端
  • 学习笔记
  • 生活笔记
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

MarginLon

http://info.cern.ch
首页
  • Web

    • Web基础
    • Web布局
    • CodeSnippet
  • Vue

    • Vue
  • React

    • React
  • Node.js

    • Node.js
  • 技术文档
  • UI组件库
  • 动画库
  • 图形库
  • 桌面端
  • 学习笔记
  • 生活笔记
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据类型 类型检测 类型转换
  • 精度问题
  • 堆栈内存 函数底层运行机制 块级作用域
  • GC机制 闭包作用域 let/const/var
  • 闭包应用
  • DOM
  • BOM
  • This指向
  • 浏览器渲染机制 CRP优化 事件循环机制
  • 函数防抖节流
  • 模块化 柯里化
  • 构造函数 原型
  • CLASS
  • 工厂设计模式 深浅拷贝 深浅合并
  • Iterator/Generator
  • Promise/ Async/ Await
  • HTTP/跨域
  • API
  • AJAX
  • 事件
    • 事件
    • 事件绑定
    • 事件对象
    • 事件传播
    • 事件委托
  • 《JavaScript高级程序设计(第4版)》
MarginLon
2022-05-14
目录

事件

  • 事件
  • 事件绑定
  • 事件对象
  • 事件传播
  • 事件委托

# 事件

事件由浏览器赋予元素。MDN事件 (opens new window)

  • 鼠标事件
    • click 点击事件(PC) 单击事件(移动端:300ms延迟)
    • dblclick 双击事件
    • contextmenu 右键点击
    • mousedown 按下
    • mouseup 抬起
    • mousemove 移动
    • mouseover 滑出
    • mouseenter 进入
    • mouseleave 离开
    • mousewheel 滚轮滚动
  • 键盘事件
    • keydown
    • keyup
    • keypress (除shift, fn, capslock)
  • 触屏事件
    • touchstart
    • touchmove
    • touchend
    • gesture...
  • 表单事件
    • focus
    • blur
    • submit
    • reset
    • select
    • change
    • input 移动端,监控文本框变动
  • 资源事件
    • load (window.onload/ img.onload)
    • error
    • beforeunload
  • CSS3动画事件
    • transitionstart 过渡开始
    • transitionend 过渡结束
    • transitionrun 过渡中
    • animation...
  • 视图事件
    • resize
    • scroll
    • ...
  • 剪贴板
  • 拖放
  • 媒体

# 事件绑定

  • DOM0: document.body.onclick = function() {}
  • DOM2:
    • element.addEventListener('click',function(){},false)
    • element.removeEventListener('click',function(){},false)
    • true:捕获阶段触发 / false:冒泡阶段触发(默认)
    • this: 事件对象
    • ie8兼容:element.attachEvent('onclick',function(){}) 后绑定的先执行,this:window

# 事件对象

  • MouseEvent
    • clientX/Y: 鼠标触发点距当前窗口的X/Y轴坐标
    • pageX/Y: 距离BODY的X/Y轴坐标:event.pageX || scroll().left + event.clientX;
    • type: 事件类型
    • target/srcElement: 事件源
    • path 传播路径
    • preventDefault()/ returnValue=false 阻止默认行为
    • stopPropagation()/ cancelBubble=true 阻止冒泡传播
  • KeyboardEvent
    • which/ keyCode
      • 方向键: 37 38 39 40
      • space: 32
      • BackSpace: 8
      • Del 46 (Mac 8)
      • Enter 13
      • Shift 16
      • Ctrl 17
      • Alt 18
      • ...
    • altKey
    • ctrlKey
    • shiftKey
  • TouchEvent
    • changedTouches
    • ev.changedTouches[0]

# 事件传播

  • 捕获 目标 冒泡

# 事件委托

编辑 (opens new window)
上次更新: 2023/04/01, 15:26:22
AJAX

← AJAX

最近更新
01
KnockoutJS
11-12
02
综述
10-17
03
前言
10-12
更多文章>
Theme by Vdoing | Copyright © 2019-2024 MarginLon | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式