原文网址:JS--事件(Event)--使用_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍JavaScript对Event(事件)的使用。

官网

事件介绍 - 学习 Web 开发 | MDN

绑定方式

html标签

优点

  1. 同一个 dom 元素上,on 可以绑定多个同类型事件,会按顺序执行。

缺点

  1. 能写的代码比较短。

实例

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><title>This is title</title>
</head><body><div><button id="btn" onclick="function1();function2()">点我</button>
</div><script>function function1() {console.log('函数1');}function function2() {console.log('函数2');}</script></body>
</html>

结果:(两个函数按顺序执行)

JS:onxxx

优点

  1. 兼容性很好,所有浏览器都支持。
  2. 可写的代码比较多

缺点

  1. 同一个元素的同一种事件只能绑定一个函数(后面的函数会覆盖前边的函数)

用法

给事件绑定函数:

<script>var btn = document.getElementsByClassName('button');btn.onclick = function(){alert(0);}
</script>

清除事件的绑定:只需给该事件赋值为 null

<script>var btn = document.getElementsByClassName('button');btn.onclick = null;
</script>

实例

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><title>This is title</title>
</head><body><div><button id="btn">点我</button>
</div><script>let btn = document.getElementById('btn');btn.onclick = function () {console.log('函数1');};btn.onclick = function () {console.log('函数2');};
</script></body>
</html>

结果(只运行了最后一个函数)

JS:addEventListener

简介

说明

大部分浏览器支持addEventListener。只有IE8及之前的IE不支持,可用attachEvent替换。

优点

  1. 同一个元素的同种事件可以绑定多个函数,按照绑定顺序执行

缺点

  1. 兼容性略差(旧版浏览器不支持)

addEventListener与attachEvent区别

addEventListener attachEvent
兼容性

支持:谷歌、火狐、IE11

不支持:IE8

不支持:谷歌、火狐、IE11

支持:IE8

顺序 按事件绑定的先后顺序执行 随机
this指向 this是当前绑定事件的对象 this是window
参数个数 三个参数 两个参数
事件命名 没有on 有on

示例

添加事件监听:addEventListener;清除事件监听:removeEventListener。二者参数一致。

参数说明

target.addEventListener(type, listener [, options]);
target.addEventListener(type, listener [, useCapture]);

第一个参数:事件名称。比如:click,mouseover

第二个参数:作为事件处理程序的函数

第三个参数:options(可选)

  • 具有以下属性的附加可选对象:

    • once :如果为 true ,那么会在被触发后自动删除监听器。
    • capture :事件处理的阶段,我们稍后将在 冒泡和捕获 一章中介绍。
      • 由于历史原因, options 也可以是 false/true ,它与 {capture: false/true} 相同。
    • passive :如果为 true ,那么处理程序将不会调用 preventDefault()

第三个参数:useCapture(可选)

  1. true:在捕获阶段调用。
  2. false:在冒泡阶段调用。
  3. 若不提供第三个参数,则useCpature为false。

代码

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><title>This is title</title>
</head><body><div><button id="btn">点我</button>
</div><script>let btn = document.getElementById('btn');btn.addEventListener("click", () => {console.log('函数1');})btn.addEventListener("click", () => {console.log('函数2');})</script></body>
</html>

结果:(两个函数按顺序执行)

事件大全

其他网址

事件参考 | MDN

其他网址

JS一个元素怎么绑定多个事件_BarryLee的博客-CSDN博客_绑定多个事件
JavaScript(1)---绑定事件、解除绑定事件 - 雨点的名字 - 博客园

JS--事件(Event)--使用相关推荐

  1. js事件(Event)知识整理

    鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover  之后如果光标继续在元素上移动,则不断触发mousemove  如果按下鼠标上的设备(左键,右键,滚轮--),则触发mousedow ...

  2. js事件Event对象(自定义事件对象 CustomEvent)

    文章目录 一.参考 二.Event 接口介绍 2.1 事件分类 三. 创建过时Event不推荐 3.1 document.createEvent 3.1.1 语法`var event = docume ...

  3. js事件冒泡、阻止事件冒泡以及阻止默认行为

    大家好,我是IT修真院武汉分院web第17期的学员吴三水,一枚正直纯洁善良的web程序员. 今天给大家分享一下,修真院官网js(职业)任务四,深度思考中的知识点--js事件冒泡.阻止事件冒泡以及阻止默 ...

  4. 面试率 90% 的JS事件循环Event Loop,看这篇就够了!! !

    面试率 90% 的JS事件循环Event Loop,看这篇就够了!! ! 事件循环(Event Loop)大家应该并不陌生,它是前端极其重要的基础知识.在平时的讨论或者面试中也是一个非常高频的话题. ...

  5. JS事件循环 Event Loop

    前言 刚学前端的时候一直听别人说 JS 是单线程.单线程.单线程的,其实完整的应该是在浏览器环境下 JS 执行引擎是单线程的. 那么什么是线程?为什么JS是单线程的? 1. 进程和线程 进程和线程的主 ...

  6. js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输

    百行代码实现js事件监听实现跨页面数据传输 使用场景 类似消息队列的使用场景,支持同页面和跨页面通信,发送消息和接收消息 技术原理 跨页面通信: 基于事件监听,通过监听 storage事件监听回调机制 ...

  7. Linux事件循环阻塞,深入浅析Node.js 事件循环、定时器和process.nextTick()

    什么是事件循环 尽管JavaScript是单线程的,但通过尽可能将操作放到系统内核执行,事件循环允许Node.js执行非阻塞I/O操作. 由于现代大多数内核都是多线程的,因此它们可以处理在后台执行的多 ...

  8. JS 事件冒泡和事件捕获

    原文:https://www.cnblogs.com/qq9694526/p/5653728.html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jq ...

  9. js事件技巧方法整合

    window.resizeTo(800,600); //js设置浏览器窗口尺寸 window.open (function(){resizeTo(640,480);//设置浏览器窗口尺寸moveTo( ...

  10. JS事件冒泡机制和兼容性添加事件

    本篇文章主要来讲讲 事件的冒泡机制 和 添加事件的几种方法. 一. JS的时间传递顺序: 捕获阶段 -> 目标阶段 -> 冒泡阶段 捕获阶段是指从父层往子层找.比如 <body> ...

最新文章

  1. iOS开发UI基础—手写控件,frame,center和bounds属性
  2. 使用Arquillian(包括JPA,EJB,Bean验证和CDI)测试Java EE 6
  3. 安装 Tensorflow
  4. windows API 菜鸟学习之路(三)
  5. SpringCloud工作笔记041---com.fasterxml.jackson.databind.ObjectMapper的使用
  6. 用Python给你的头像加口罩,加圣诞帽,加红心,加加加
  7. python之class
  8. 最高效的XML解析方式-----Simple 简化 XML 解析
  9. 开发power apps canvas时用到的一些公式和小技能
  10. android wear 微信支付,智能手表不是鸡肋 Pacewear能刷微信支付宝结账
  11. 电脑插上耳机没声音 解决方法
  12. Gluster (一)安装
  13. 英飞凌基础学习笔记(SMU)Safety Management Unit
  14. 有没有夫妻相?刷一下脸就知道!
  15. ubuntu7.04下网络电视P2P
  16. 干货分享:百度品牌展现权限的开通方法
  17. LW_OOPC学习02
  18. 使用VUE+SpringBoot+EasyExcel 整合导入导出demo
  19. 千锋教育实训day01———Java
  20. Swift - Alamofire源码解析

热门文章

  1. matlab 创建同型矩阵_仅在第1部分之间的海洋中探索同型图
  2. AWS-EC2多弹性ip配置
  3. 对数字签名的攻击概述
  4. OSX下代码打开系统首选项(system preferences)
  5. java用户权限管理与角色设置(一)
  6. 网红湾湾否认与李易峰恋情,网友:其实两人很般配!
  7. 稳压二极管主要参数及选型(及常见电阻封装的可过的电流)
  8. 稳压二极管稳压电路如何设计
  9. 常见的登录逻辑漏洞总结
  10. Java基础03运算符