事件高级知识

注册事件

给元素添加事件成为注册事件或者绑定事件
分为两种
传统方式——特点:唯一性
监听方式——特点:同一个元素可以注册多个监听器

事件监听

addEventListener()(IE9以后支持)
type:事件类型字符串 如click、mouseover等
listener:事件处理函数,事件发生时,会调用该监听函数
useCapture:默认是false

attacheEvent()(IE678支持)
eventNameWithOn:事件类型字符串,如onclick、onmousepver等
callback:事件处理函数,目标触发事件回调函数被调用

删除事件

传统方式:eventTarget.οnclick=null;
监听方式:eventTarget.removeEventListener(type,listener[,useCaptuer] );
                  eventTarget.detachEvent(eventNameWithOn,callback);

DOM事件流

事件发生时会在元素节点之间按照特定的传播顺序传播,这个传播过程就叫DOM事件流
DOM 事件流会经历3个阶段: 
1. 捕获阶段——父级到目标
2. 当前目标阶段
3. 冒泡阶段——目标到父级
注意
            js代码只能执行捕获或者冒泡其中一个阶段
            onclick和attachEvent只能得到冒泡阶段
            addEventListener第三个参数为true,表示在捕获阶段,反之为冒泡阶段,默认为false
            有些事件是没有冒泡的,如onclick、onfocus等

事件对象

事件发生后,跟事件相关的一系列信息数据的集合都放到这个对象里面,这个对象就是事件对象

事件对象的使用
用event或evt或e来作为事件对象

兼容性处理
在 IE6~8 中,浏览器不会给方法传递参数,如果需要的话,需要到 window.event 中获取查找
解决:e=e||window.event;

属性和方法
            e.target  返回触发事件的对象
            e.srcElement 返回触发事件的对象 ie6~8使用
            e.type 返回事件的类型
            e.cancelBubble 阻止冒泡 ie6~8
            e.stopPropagation() 阻止冒泡
            e.returnValue 阻止默认事件 ie6~8
            e.preventDefault() 阻止默认事件
        e.target 和 this 的区别
            this 是事件绑定的元素(绑定这个事件处理函数的元素) 
            e.target 是事件触发的元素

事件委托

原理:给父元素注册事件,利用事件冒泡,当子元素的事件触发,会冒泡到父元素,然后去控制相应的子元素

作用:1、只操作了一次 DOM ,提高了程序的性能
            2、动态新创建的子元素,也拥有事件

常用鼠标事件

鼠标事件:onclick 点击左键等

事件对象
相对于窗口可视区坐标
                e.clientX
                e.clientY
相对于文档页面坐标
                e.pageX
                e.pageY
相对于电脑屏幕坐标
                e.screenX
                e.screenY

常用的键盘事件

键盘事件
            onkeyup  按键松开时触发
            onkeydown 按键按下时触发
            onkeypress 按键按下是触发——不识别功能键
使用addEventLidtener 不需要加on
执行顺序:keydown——keypress——keyup

事件对象
            keyCode 返回该键的ASCll值
            onkeydown和onkeyup 不区分大小写,onkeypress区分大小写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值