前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript事件对象与事件的委托

JavaScript事件对象与事件的委托

作者头像
小古哥
发布于 2018-03-08 08:23:53
发布于 2018-03-08 08:23:53
91600
代码可运行
举报
运行总次数:0
代码可运行

事件对象

包含事件相关的信息,如鼠标、时间、触发的DOM对象等

 js默认将事件对象封装好,并自动的以参数的形式,传递给事件处理函数的第1个参数,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.getElementsByTagName("div")[0].onclick = function(e){
  e = window.event || e; //兼容IE低版本(事件对象绑定在window的event上)
  console.log(e);//这里e就是事件对象
}

事件的属性和方法

type:获取事件类型(click、mouseover等等)

target:获取发生的所在元素(在低版本IE下用srcElement属性)

stopPropagation() 阻止事件冒泡(IE用cancelBubble属性为false阻止冒泡)

preventDefault() 阻止事件默认行为(IE用returnValue属性为false阻止默认行为)

事件委托

利用target属性,获取时间发生的所在对象,避免全体子元素加事件,对比如下: 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var tbs=document.getElementsByTagName("td");
    for(var i=0;i<tbs.length;i++){//循环给每个子元素添加事件
        tbs[i].onclick=function(){
            this.style.background="red";
        }
    }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.getElementsByTagName("table")[0].onclick=function(e){
        e.target.style.background="red";//只绑定父元素事件,用target获取子元素
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-06-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入理解事件
javascript 给 DOM 绑定事件处理函数总的来说有2种方式:在 html 文档中绑定、在 js 代码中绑定。下面的方式1、方式2属于在 html 中绑定事件,方式3、方式4和方式5属于在js代码中绑定事件,其中,方式4和5属于事件监听,而方式5是最推荐的做法。
Chor
2019/11/08
8430
JavaScript 事件对象
一.事件对象 事件处理三部分组成:对象.事件处理函数=函数。例如:单击文档任意处。 document.onclick = function () { alert('Lee'); }; PS:以上程序的名词解释:click表示一个事件类型,单击。onclick表示一个事件处理函数或绑定对象的属性(或者叫事件监听器、侦听器)。document表示一个绑定的对象,用于触发某个元素区域。function()匿名函数是被执行的函数,用于触发后执行。 除了用匿名函数的方法作为被执行的函数,也可以设置成独立的函数。 do
汤高
2018/01/11
2K0
js事件对象相关随记
1.什么是事件 JavaScript事件是由访问Web页面的用户引起的一系列操作, 例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。 2.事件的三种写法 //在HTML中把事件处理函数作为属性执行JS函数 <input type="button" value="按钮" onclick="alert('你好');" /> //执行与脚本分离 <input type="button" value="按钮" onclick="fn();" /> //
天天_哥
2018/09/29
1.4K0
js事件委托的理解 转
http://www.cnblogs.com/liugang-vip/p/5616484.html  这篇文章写的很详细,非常感谢作者。
tianyawhl
2019/04/04
1K0
一次关于js事件出发机制反常的解决记录
起因:正常情况下我点击s2时是先弹出我是children,再弹出我是father,但是却出现了先弹出我是father,后弹出我是children的情况,这种情况是在和安卓app交互的h5页面中出现的,本地测试没有问题,但是在安卓打包的内嵌h5页面就出现了问题。简单化的代码先展示出来。 html代码如下 <div id="father" class="ss1">s1 <div id="children" class="ss2">s2 </div> </div> 事件绑定如下 $('#fathe
吴裕超
2018/02/28
1.5K0
一次关于js事件出发机制反常的解决记录
浅谈JavaScript的事件(事件对象)
  在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有关的信息。包括导致事件的元素、事件的类型和事件的相关信息。例如鼠标操作的事件中,会包含鼠标的位置信息。而键盘触发的事件会包含与按下的键有关信息。所有浏览器都支持event对象,但支持方式不同。 DOM中的事件对象   兼容dom的浏览会将一个event对象传递到事件处理程序中。 1 var aa=document.getElementById("aa"); 2 aa.onclick=functi
水击三千
2018/02/27
1.2K0
前端学习(50)~事件的绑定和事件对象
我们在之前的一篇文章《04-JavaScript/22-DOM简介和DOM操作》中已经讲过事件的概念。这里讲一下绑定(注册)事件的两种方式,我们以onclick事件为例。
Vincent-yuan
2020/03/19
9510
JavaScript基础学习--零碎
1、如果WINDOW对象是常规HTML页面,TOP就是SELF       var top = document.getElementById('top');      top.innerHTML  
用户1148399
2018/01/09
1K0
javascript事件详解
事件流 事件流两种顺序:冒泡与捕获。 简单的添加与删除事件 obj.onclick=function(){} obj.onclick=null; 通用事件添加的删除 obj.addEventListener(),obj.attachEvent() obj.removeEventListener(),obj.attachEvent() 三个参数分别表示,(事件,绑定函数,事件流), 注意: 1.如果必须得删除事件,这种写法,不能用匿名函数,否则删除函数的时候,不方便。 2.attachEvent的事件名称是o
前朝楚水
2018/04/02
1.4K0
JavaScript——DOM事件高级
此方法将指定的监听器注册到eventTarger(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。
岳泽以
2022/10/26
1.8K0
JavaScript——DOM事件高级
js中的事件(event)
我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠标是否进入了页面的某个元素上面(mouseover或mouseenter)、鼠标是否离开了网页(mouseout或mouseleave)、浏览器是都加载完了页面上的资源(window.onload)、文档树是否生成(DOMContentLoaded)、键盘上的某个键是否按下(keydown)、鼠标的滚轮是否滚动了等等。
山河木马
2019/03/05
7K0
DOM事件第一弹
     近期温习了部分w3c上关于DOM事件的规范,发现以前有些模糊的概念更加清晰,以及受到罗胖(罗辑思维)的影响,很是想分享自己的了解的东西,希望大家给予指正或补充。 一、事件类型 参数 事件接口 初始化方法 HTMLEvents HTMLEvent iniEvent() MouseEvents MouseEvent iniMouseEvent() UIEvents UIEvent iniUIEvent() 此处为DOM2级事件,DOM3级对事件分解更加详细,后续文章继续整理。
sam dragon
2018/01/17
6500
DOM事件第一弹
事件高级
eventTarget.addEventListener()方法将指定的监听器注册到 eventTarget(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。
星辰_大海
2020/09/30
1.4K0
JS篇(007)-事件委托是什么
- 适合用事件委托的事件:click,mousedown,mouseup,keydown,keyup,keypress。
齐丶先丶森
2022/05/12
1.7K0
事件高级
给元素添加事件,称为注册事件或者绑定事件。 注册事件有两种方式:传统方式和方法监听注册方式
梨涡浅笑
2022/05/08
1.2K0
事件高级
JavaScript事件探秘
事件流描述的是从页面中接收事件的顺序。IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流
张张
2019/12/26
9000
JavaScript阻止冒泡和取消默认事件(默认行为)
JavaScript冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。使用event.preventDefault()可以取消默认事件。
前端老道
2022/03/29
6.3K0
前端day16-JS(WebApi)学习笔记(事件补充、事件冒泡与捕获)
var code = e.keyCode || e.charCode || e.which;
帅的一麻皮
2020/05/05
1.8K0
再谈BOM和DOM(5):各个大流浪器DOM和BOM里面的那些坑—兼容性
所有浏览器的focus/blur事件都不冒泡,万幸的是大部分浏览器支持focusin/focusout事件,不过可恶的firefox连这个都不支持。
周陆军
2021/07/13
9950
JavaScript 事件绑定
事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定(DOM2级模型)。现代事件绑定在传统绑定上提供了更强大更方便的功能。 一.传统事件绑定的问题 传统事件绑定有内联模型和脚本模型,内联模型我们不做讨论,基本很少去用。先来看一下脚本模型,脚本模型将一个函数赋值给一个事件处理函数。 var box = document.getElementById('box');//获取元素 box.onclick = function () {//元素点击触发事件 alert('Lee'); };
汤高
2018/01/11
3.4K0
相关推荐
深入理解事件
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文