3.9 JavaScript-事件

事件绑定

事件绑定的三要素
1.事件源:和做好约定
2.事件类型:约定一个什么行为
3.事件处理函数:当用户触发该行为的时候,执行什么代码
语法:
事件源.on事件类型 = 事件处理函数
例:在这里插入图片描述

事件类型

在这里插入图片描述

事件对象

概念:当事件触发的时候,一个描述该事件信息的对象数据类型
在这里插入图片描述
在这里插入图片描述
例:当事件被触发时,浏览器会自动传递出本次的事件对象
在这里插入图片描述

事件对象内的信息 - 鼠标事件

坐标信息:
1.offsetX 和 offsetY
2.clientX 和 clientY
3.pageX 和 pageY
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例:鼠标点击时获得当前鼠标的坐标
在这里插入图片描述

事件参数event总结

event 事件信息对象,包含了事件目标和坐标信息
event.type 事件类型
event.target 事件触发目标,谁触发了事件(不确定是谁)
event.currentTarget 事件目标本身,谁绑定了事件(总是指向事件目标)
this this指向事件目标 == event.currentTarget

参数e的坐标问题

event.screenX, event.screenY 鼠标相对于电脑屏幕左上角的坐标
event.pageX, event.pageY 鼠标相对于网页左上角的坐标
event.clientX, event.clientY 鼠标相对于显示窗口左上角的坐标
event.layerX, event.layerY 鼠标相对于非静态定位的父级元素左上角的坐标,类似于绝对定位
event.offsetX, event.offsetY 鼠标相对于event.target出发事件的目标左上角的坐标

事件对象内的信息 - 键盘事件

键盘编码 事件对象.keyCode
事件对象.key
例:获得当前键盘按下的值
在这里插入图片描述

在这里插入图片描述
keyCode对应的ASCLL编码值
在这里插入图片描述

事件传播

概念:浏览器响应事件的机制
浏览器窗口最先知道事件的发生
==捕获阶段:==从window按照结构子级的顺序传递 目标
==目标阶段:==准确触发事件的元素接收到行为
==冒泡阶段:==从 目标 按照结构父级的顺序传递到window
本次事件传播结束
在这里插入图片描述
例:
在这里插入图片描述

阻止事件传播

因为事件传播当在子级身上触发事件的时候,也同时会触发父级的事件,因此我们要阻止事件传播
语法:事件对象.stopPropagation()
在这里插入图片描述

事件委托

概念:利用事件冒泡机制,把自己的事件委托给结构父级中的某一层
在这里插入图片描述
例:
在这里插入图片描述

事件对象内的信息 -表单事件

在这里插入图片描述

阻止默认事件

在js中有很多元素都有默认行为 比如 a标签跳转 提交按钮 重置按钮 等 如果不需要元素的默认行为 可以被阻止,利用事件参数 来进行阻止
在这里插入图片描述

拖拽事件

被拖拽元素

ondragstart 开始拖拽运行一次

语法:元素.οndragstart=function( ){ }

ondrag 拖拽时连续执行多次

语法:元素.οndrag=function( ){ }

ondragend 拖拽结束执行一次

语法:元素.οndragend=function( ){ }
被拖入的元素

ondragenter 拖入事件 文件被拖入此元素范围时执行一次

语法:元素.ondragenter = function( ){ }

ondragover 拖拽悬停 当一个能拖拽的标签在事件目标内部拖拽时连续触发

语法:元素.ondragover =function( ){ }

ondragleave拖拽悬停 把一个能拖拽的标签拖出事件目标内部时触发

语法:元素.ondragleave = function( ){ }

ondrop 丢下事件 把一个能拖拽的标签拖入事件目标内部并松开鼠标(结束拖拽)时,触发

语法:元素.ondrop = function( ){ }
ondrop事件有时可能触发不了,需要阻止事件的默认行为:
1, 阻止ondragover事件的默认行为 2, 阻止ondrop本身的默认行为
阻止元素默认行为,function参数event.preventDefault();

猜你喜欢

转载自blog.csdn.net/weixin_46073653/article/details/124700338
3.9
今日推荐