位置: 编程技术 - 正文

学习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事件对象

  • 什么是节税?
  • 房产税如何申报流程
  • 补缴以前年度企业所得税如何填报汇算清缴表
  • 个人所得税计提分录怎么写
  • 支付证明单算附件吗
  • 应收账款和应付账款可以抵消吗
  • 事业单位无形资产摊销年限
  • 私对公转账收税吗
  • 税前利润等于应纳税所得额吗
  • 劳务公司开出发票3年未收到钱
  • 差额征税所得税怎么申报
  • 印花税购销合同包括哪些
  • 住宿发票要附清单吗
  • 公司租车怎么抵税
  • 退货报废计入哪类费用
  • 银行变更印鉴多久生效
  • 物业公司可以开什么项目的发票
  • 什么费用可以列支拆迁补偿费
  • 仓储业有哪些
  • 房产税每次申报都要维护吗
  • 商品房买卖合同预售和商品房买卖合同有什么区别
  • 网络信息化服务中心是干嘛的
  • 实收资本印花税最新规定
  • 物业费的进项税额可以抵扣吗
  • 房地产土地抵扣
  • 预付油卡怎么入账
  • 建筑企业存款账户
  • 模具费用如何平摊到产品上
  • 企业所得税如何计算
  • 房租押金未全额缴纳
  • win10如何自定义鼠标指针
  • php框架怎么写
  • 充值会员卡销售话语
  • 设置u盘优先启动怎么设置
  • 软件开发公司排行榜
  • 修改远程桌面端口脚本
  • 冈山平原
  • php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
  • 记载资金的账簿印花税的税率是多少
  • 业务招待费如何进行纳税调整
  • 董事会会费应计什么科目
  • vite怎么打包
  • 退休返聘人员是否享受工会福利
  • 个税专项扣除中赡养老人
  • 联邦学习(FL)+差分隐私(DP)
  • vue 配置
  • 固定资产处置的三种方式
  • 应该如何打造自己
  • 税前扣除项目应遵循哪些原则
  • 利润表中利息费用为负数是什么意思
  • 印花税的计税依据为各种应税凭证上所记载的计税金额
  • 工程项目怎么挣钱
  • 开个人劳务票需要本人去吗
  • 研发人员工资加计扣除以实发
  • 公司没有车加油费怎么报
  • 无固定合同有哪些好处
  • 双倍余额递减法例题及解析
  • sql server的介绍
  • win7下mysql6.x出现中文乱码的完美解决方法
  • win8链接wi-fi
  • win10打开或关闭
  • win8.0下载
  • win8点击桌面没反应
  • win7如何显示桌面
  • win7系统删除ie浏览器
  • 使用netcat(瑞士军刀)进行文件传输
  • ubuntu nfs配置
  • 批处理作用
  • shell常用命令及示例
  • unity strangeioc
  • javascript怎么学
  • socket客户端发送数据
  • django返回json数据
  • 每天一篇文章锻炼口才的文章
  • 税务分享风险如何解决
  • 请问各位专家金线吊乌龟有什么功效
  • 一手房有契税和个税吗
  • 混合销售定义是什么意思
  • 国地税账号密码
  • 如何查询公司是一般纳税人还是小规模纳税人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设