1.dom中注册事件有两种语法
点语法: 只能注册一个‘同名’事件
addEventListener语法 : 可以注册多个‘同名’事件
2.点语法: 不能注册‘同名’事件
2.1 注册: 事件源.事件类型 = 事件处理函数
2.2 移除: 事件源.事件类型 = null
3.addEventListener语法 : 可以注册多个‘同名’事件
3.1 事件源.addEventListener('事件类型',事件处理函数)
3.2 事件源.removeEventListener('事件类型',事件处理函数)
* 只能移除具名事件
阻止默认事件
1.默认事件 : 在html中,有少部分标签自带点击事件。 ( a标签, form表单 )
a标签点击会默认跳转到href属性对应的链接
form表单里面的按钮点击默认跳转到action属性对应的链接
2.如果我们自己也要注册点击事件,那么就要阻止默认事件\
e.preventDefault()
任何数据类型共同点(值类型,引用类型)
* 都有变量赋值特点
2.引用类型特点
* 函数: 函数名()
* 数组: 数组名[下标]
* 对象: 对象名.属性名
1.事件对象 : 存储与事件相关的数据。 当我们触发事件的时候,浏览器会自动捕捉触发时的鼠标(坐标点)和键盘信息
(按键),存入一个对象中,称之为事件对象。
* 事件对象: 存储与事件触发相关的数据
* 事件对象是浏览器自动存储的,我们只需要获取即可
2.获取事件对象 : 给事件处理函数添加形参 event | ev | e
3.事件对象e常用属性和方法总结 :
3.1 阻止默认事件(a和form) : e.preventDefault()
3.2 获取鼠标触发点 : e.pageX / e.pageY
2.复习键盘事件
oninput : 键盘输入 (文本框内容有输入,实时获取输入框文本)
onfocus : 键盘成为焦点
onblur : 键盘失去焦点
onkeydown : 键盘按下 (监听enter键)
onkeyup : 键盘松开
2.获取键盘按键 : 有两种方式
e.key : 获取按键字符串 'Enter'
e.keyCode : 获取按键ASCII码(每一个按键对应一个数字)
3.事件冒泡 : 当触发子元素的事件的时候, 所有的父级元素‘同名事件’都会被依次触发
元素->父元素->body->html->document->window
2.事件委托 : 给父元素注册,委托子元素处理
事件委托原理 : 事件冒泡
事件委托应用场景 :
(1)实际开发最多: 给动态新增的子元素注册事件
(2)性能优化 : 如果所有的子元素都需要注册同名事件,只需要给父元素注册
事件委托注意点 :
(1)事件委托不能通过this找到子元素。 (this指向父元素)
(2)事件委托需要通过什么属性找到子元素: e.target
4.事件捕获 : 触发子元素的事件的时候,会从最顶级的父元素一级一级往里触发
window->document->html->body->d父元素->元素
5.阻止事件流动 : 阻止冒泡 + 阻止捕获
e.stopPropagation()