DOM(3)
网友:do
文章列表
2024-03-22 01:35:12
- 注册事件概述:给元素添加事件,称为注册事件或绑定事件
- 注册事件有两种方式:传统方式和方法监听注册方式
- 传统注册方式: (1)利用on开头的事件onclick:①<button οnclick="alert('hihi')"></button> ②btn.οnclick=function(){}(特点:注册事件的唯一性,同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注册的处理函数)
- 方法监听注册事件: (1)addEventListener() (特点:同一个元素同一个事件可以注册多个监听器;按注册顺序依次执行) ①语法:eventTarget.addEventListener(type,listener[,useCapture] ②type:事件类型字符串,比如click、mouseover,注意不要带on ③listener:事件处理函数,事件发生时,会调用该监听函数 ④useCapture:可选参数。是一个布尔值,默认false
- 删除事件(解绑事件): (1)传统注册方式:eventTarget.οnclick=null (2)方法监听注册方式:eventTarget.removeEventListener(type,listener[,useCapture]);
- DOM事件流:从页面中接收事件的顺序。事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程称为DOM事件流 (1)例:给一个div注册点击事件:捕获阶段:document->html->body->div;冒泡阶段:div->body->html->document (2)DOM事件流分为3个阶段:捕获阶段、当前目标阶段、冒泡阶段 (3)JS代码中只能执行捕获或冒泡其中的一个阶段 (4)onclick和attachEvent只能得到冒泡阶段 (5)addEventListener(type,listener [,useCapture])第三个参数如果是true,表示在事件捕获阶段调用事件处理程序,如果是false(不写默认false),表示在事件冒泡阶段调用事件处理程序 (6)有些事件是没有冒泡的:onblur、onfocus、onmouseenter、onmouseleave
- 事件对象 :eventTarget.οnclick=function(event){} (event(可以写成e或evt,是个形参,系统设定为事件对象,不需要传递实参)事件代表事件的状态,事件发生后,跟事件相关的一系列信息事件数据的集合都放在这个对象里面)
- 事件对象常见属性和方法: (1)e.target:返回触发事件的对象(标准) (2)e.srcElement:返回触发事件的对象(非标准) (3)e.type:返回事件的类型(比如click mouseover不带on) (4)e.preventDefault():该属性阻止默认事件(标准:比如不让链接跳转) (5)e.stopPropagation():阻止冒泡(标准) 注:(1)中e.target点击了哪个元素返回哪个元素;this哪个元素绑定了点击事件,那么就返回谁
- 事件委托(事件代理):在jQuery里面称为事件委派 (1)事件委托原理(重点):不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个子节点 ①例:给ul注册点击事件,然后利用事件对象的target来找到当前点击的li,因为点击li,事件会冒泡到ul上,ul有注册事件,就会触发事件监听器。
- 常用鼠标事件: (1)禁止鼠标右键菜单:contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单 语法:document.addEventListener('contextmenu',function(e){e.preventDefault(); }) (2)禁止鼠标选中(selectstart 开始选中): 语法:document.addEventListener('selectstart',function(e){ e.preventDefault() ;})
- 鼠标事件对象:event对象代表事件的状态,跟事件相关的一系列信息的集合。 (1)鼠标事件对象:MouseEvent ①e.clientX:返回鼠标相对于浏览器窗口可视区的X坐标 ②e.clientY:返回鼠标相对于浏览器窗口可视区的Y坐标 ③e.pageX:返回鼠标相对于文档页面的X坐标 ④e.pageY:返回鼠标相对于文档页面的Y坐标 ⑤e.screenX:返回鼠标相对于电脑屏幕的X坐标 ⑥e.screenY:返回鼠标相对于电脑屏幕的Y坐标 (2)常用的键盘事件: ①onkeyup:某个键盘按键被松开时触发 ②onkeydown:某个键盘按键被按下时触发 ③onkeypress:某个键盘按键被按下时触发(但它不识别功能键,比如ctrl shift箭头等) 注:①如果使用addEventListener不需要加on;②三个事件执行顺序:keydown->keypress->keyup (3)键盘事件对象: ①keyCode:得到相应键的ASCII码值(keyup和keydown不区分大小写;keypress区分大小写),可以利用keyCode返回的ASCII码值判断用户按下了哪个键 注意:keydown和keypress在文本框里面的特点:他们两个事件触发的时候,文字还没有落入文本框中,keyup事件触发的时候,文字已经落入文本框里面了
天赋娱乐音乐