普通事件绑定和 事件监听的区别:
1. 添加监听事件可以对动态生成的元素(未来元素)生效,而普通事件不可以
2. 普通事件只能执行一个回调函数,监听事件可以添加n个(事件监听可以绑定多个相同的事件)
3. 事件监听可以控制事件的传播方式(冒泡或捕获),而事件绑定只有冒泡
4. 事件监听可以通过删除的方法,来取消事件,而普通绑定只能通过 null来取消
事件监听: 调用对象.addEventListener(a,b,c)
a : 事件类型
b : 触发事件后执行的函数
c : 布尔值 默认值是 false 事件冒泡 ; true 事件捕获
事件阻断: event.stopPropagation( )
直接使用,不需要参数
删除事件监听 :调用对象.removeEventListener(
a,b,c
)
a : 事件类型 b : 触发事件后执行的函数 c : 布尔值 默认值是 false 事件冒泡 true 事件捕获
注意事项:
1. 相同元素调用
2. 相同事件名称
3. 相同函数名(匿名函数不行,需要全局函数)
4. 相同的执行阶段
事件委托
实现的原理是通过 :事件冒泡
优点:
1)只在内存中开辟了一块空间,节省资源同时减少了dom操作,提高性能
2)对于新添加的元素也会有之前的事件(可以把事件帮给未来元素)