38 事件

1.1  键盘事件及对象

  • onkeydown:只要按下任意键,就会触发一次

  • onkeypress:生成一个字符时触发,最常用

  • //键盘事件对象 document.onkeypress = function(evt){ // console.log(evt); //录入的字符 console.log(evt.key); //录入的ASC码值 var keyAsc = evt.keyCode || evt.which || evt.charCode; // console.log(evt.keyCode); // console.log(evt.which); // console.log(evt.charCode); // 65 97 13 32 48 10 // A a 回车 空格 0 ctrl+回车 console.log(keyAsc); if(keyAsc == 10){ console.log("发送"); } //ctrlKey:判断ctrl是否被按下 console.log(evt.ctrlKey); }

1.2  事件的绑定方式

  • 1.通过HTML元素绑定

    • <button οnclick="f1()">点击1</button>

  • 2.通过JS对象绑定

    • <button id="btn">点击2</button><br> var oBtn = document.querySelector("#btn");

  • 以上绑定的缺陷:

    • 1.无法为相同的元素绑定相同的事件

    • 2.无法决定事件流是捕获还是冒泡

    • 解决方案

      • 3.事件的监听

        • 优点

          • 1.可以为相同的元素绑定相同的事件

          • 可以决定事件流是捕获还是冒泡

        • 事件元素

          • addEventListener("去掉on的事件名",回调函数,是否捕获true | 默认false)

          • 先捕获后冒泡

1.3  事件的解绑

  • 1.js对象的解绑

    • var oBtns = document.querySelectorAll("button"); oBtns[0].onclick = function(){ alert(111); } oBtns[1].onclick = function(){ oBtns[0].onclick = null; }

  • 2.事件监听的解绑

    • removeEventListener("去掉on的事件","同一个回调函数");

1.4  事件的委托

  • 委托:你的事情让别人干

  • 事件的委托:子元素被触发后,事件体由父元素去执行--》依赖于冒泡机制

  • 好处1:可以将批量绑定的子元素事件,委托到父元素的事件,从而提高程序的执行效率

  • 好处2:可以为未来添加子元素,提前绑定事件

1.5  拖拽

  • onmousedown

    • box

  • onmousemove

    • document

  • onmouseup

    • document

相关推荐

  1. 38 事件

    2024-04-26 23:24:02       37 阅读
  2. 30节: Vue3 监听事件

    2024-04-26 23:24:02       85 阅读
  3. 探索STM32的外部中断/事件控制器(EXTI)

    2024-04-26 23:24:02       44 阅读
  4. FreeRTOS学习笔记-基于stm32(10)事件标志组

    2024-04-26 23:24:02       33 阅读
  5. Day34 事件聚合器实现消息过滤功能

    2024-04-26 23:24:02       28 阅读
  6. 事件事件委托

    2024-04-26 23:24:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 23:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 23:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 23:24:02       82 阅读
  4. Python语言-面向对象

    2024-04-26 23:24:02       91 阅读

热门阅读

  1. 【MySQL面试题】经典面试题之“b+树”

    2024-04-26 23:24:02       40 阅读
  2. Nest.js项目小结2

    2024-04-26 23:24:02       35 阅读
  3. 机器学习模型保存和导出pmml文件(python代码)

    2024-04-26 23:24:02       38 阅读
  4. 贪吃蛇项目实践!(下)

    2024-04-26 23:24:02       44 阅读
  5. git 缓冲区查看与设置

    2024-04-26 23:24:02       30 阅读
  6. PostgreSQL恢复系列:pg_filedump恢复字典构造---惜分飞

    2024-04-26 23:24:02       39 阅读
  7. C++中的STL——stack类的基本使用

    2024-04-26 23:24:02       38 阅读
  8. web前端第三次笔记

    2024-04-26 23:24:02       33 阅读
  9. centos常用命令(持续更新)

    2024-04-26 23:24:02       34 阅读