位置: 编程技术 - 正文

学习JavaScript事件流和事件处理程序

编辑:rootadmin

推荐整理分享学习JavaScript事件流和事件处理程序,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文全篇介绍了JavaScript事件流和事件处理程序,分享给大家供大家参考,具体内容如下

一、事件流

事件流描述的是从页面中接收事件的顺序。IE的事件流是事件冒泡流,而Netscape Communicator的事件流是事件捕获流。

二、事件冒泡

即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。如:

当点击了页面中的div元素,那么这个click事件会按照如下顺序传播:

div元素 body元素 html元素 document对象

三、事件捕获

事件捕获的思想是最具体的节点应该最后接收到事件。事件捕获的用意在于事件到达目标之前捕获它。

当点击了页面中的div元素,那么这个click事件则会按照如下顺序传播:

document对象 html标签 body标签 div标签

虽然规范要求事件应该从document对象开始传播,但浏览器一般都是从window对象开始捕获事件的。因为老版本浏览器不支持,所以一般都使用事件冒泡。

四、DOM事件流

“DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。

在DOM事件流中,实际的目标在捕获阶段不会接收事件。就是说在捕获阶段,事件从document到html再到body后就停止了。下一个阶段是“处于目标”阶段,于是事件在div中发生,并在事件处理中被看成是冒泡阶段的一部分。然后,冒泡阶段发生。IE8及更早的版本不支持DOM事件流,浏览器在捕获阶段触发事件对象上的事件,结果就是有两个机会在目标对象上面操作事件。

五、事件处理程序

事件就是用户或浏览器自身执行的某种动作;事件处理程序(或事件侦听器)就是响应某个事件的函数。事件处理程序的名字以“on”开头,如onload、onclick等。

六、HTML事件处理程序

学习JavaScript事件流和事件处理程序

若要在按钮被单击时执行一些js代码,可以这样编写:

注意:不能在其中使用未经转义的HTML语法字符。

也可以调用在页面中其他地方定义的脚本:

事件处理程序中的代码在执行时,有权访问全局作用域中的任何代码。

这样使用会创建一个封装着的元素属性值的函数。这个函数有一个局部变量event,也就是事件对象:

其中,this值等于事件的目标元素,如:

HTML事件处理程序存在众多问题,所以应该使用js指定的事件处理程序

七、DOM0级事件处理程序

要使用js指定事件处理程序,首先必须取得一个要操作的对象的引用。

每个元素都有自己的事件处理程序属性,这些属性通常全部小写,如onclick。如:

使用DOM0级方法指定的事件处理程序被认为是元素的方法。因此,这时候的事件处理程序是在元素的作用域中运行的;也就是this引用当前元素:

以上述这种方式添加的事件处理程序会在事件流的冒泡阶段被处理。

删除通过DOM0级方法指定的事件处理程序:

八、DOM2级事件处理程序

addEventListener()

该方法接收三个参数:要处理的事件名、事件处理程序函数和布尔值;布尔值如果是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。如:

还可以为该按钮添加多个事件处理程序,如:

removeEventListener()

大多数情况下,都是将事件处理程序添加到事件流的冒泡阶段,这样就可以最大限度地兼容各种浏览器。

标签: 学习JavaScript事件流和事件处理程序

本文链接地址:https://www.jiuchutong.com/biancheng/382776.html 转载请保留说明!

上一篇:javascript产生随机数方法汇总(javascript产生随机整数随机性强)

下一篇:理解JavaScript事件对象

  • 减免增值税如何结转
  • 进项税额转出期末有余额吗
  • 资产管理公司的使命
  • 车辆购置税能否退税
  • 企业从银行借款归还应付账款
  • 高新技术认定标准条件是什么
  • 资产处置收益计入营业收入吗
  • 社保代理公司的合作协议
  • 税款差0.01是怎么用会计分录处理
  • 所得税汇算清缴退税会计分录怎么做
  • 出口抵减内销产品应纳税额是借方还是贷方
  • 收发差错率
  • 合同不含税怎么算
  • 企业的哪些活动属于投资活动?
  • 电厂采购通常采购什么
  • 二月份个税申报时间
  • 分摊商品进销差额怎么算
  • 其他应付款下的固定资产怎么报废
  • 云服务器免费使用
  • win10我的电脑图标不见了怎么恢复原状
  • win10工作站版和企业版的区别
  • 信息化投入费用包括哪些
  • 固定资产折旧计算方法
  • 纳税人依法可以享受减免税待遇而没有享受的
  • 承兑找零怎么做凭证
  • zmweb.exe是什么进程
  • 桌面小工具怎么添加
  • 怎么添加动态磁贴
  • 你知道约定的公司有哪些
  • 购入工程物资用于建设厂房,购入后直接领用至工程项目
  • php变量用什么符号
  • 其他应付款怎么平账
  • 企业职工教育培训经费列支范围适用事业单位
  • opencv canny
  • 普通发票的开票规定
  • php 数组
  • alex研究原文
  • 企业一般账户开户申请理由
  • python的socket
  • mongodb安装教程图解
  • 织梦添加文章如何修改高级参数
  • 项目终止前期费用核销
  • 税前可扣除的税费
  • sqlserver英文发音
  • sql聚合语句
  • 期末留底的进项税怎么下账
  • 国债利息属于免税吗
  • 物流辅助服务费属于什么费用
  • 银行回单中包含哪些内容
  • 主营业务成本里的工资
  • 政府扶助资金
  • 辅助生产车间的制造费用不通过制造费用核算
  • 进口增值税与关税的关系
  • 财务单独核算是什么意思
  • 财务会计与预算会计差异如何处理
  • MySQL之Field‘***’doesn’t have a default value错误解决办法
  • mysql通过find_in_set()函数实现where in()顺序排序
  • 卷影复制是什么
  • mac如何更换系统
  • win7旗舰版和家庭版哪个对电脑要求低
  • shutdown /f
  • 苹果电脑macbookpro忘记密码
  • linux备份系统命令
  • redhat系统界面
  • 如何检测电脑能否上网
  • 微软账号重新登录
  • linux系统概述
  • 隐藏网络怎么连接电脑连不上
  • win10系统打开文件夹就不停的闪
  • 2015.6.28开始写博客记录cocos2dx学习历程
  • cocos2dx官方文档
  • 深入理解中国式现代化
  • 什么叫真游戏
  • Android dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent详解
  • mysql数据表复制
  • nodejs如何实现数据库
  • js递增数字
  • 安卓 自动化app
  • 贵州开票软件怎么下载安装
  • 广东电子发票开票软件?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设