事件传播
在触发子元素的事件时, 会将行为传播给父级的同类型事件触发了子元素的点击事件时, 会将该行为传播给父级, 并触发父级的同类型事件在传递行为时, 会将行为一直向上传递, 如果父级有同类型事件, 那么触发该事件。如果没有, 则继续往上传递。
阻止事件传播:.stopPropagation()
冒泡捕获
冒泡: 事件传播时, 从目标开始传播, 一直到到父级
捕获: 从最顶层开始, 逐层向下传递, 一直到目标
window默认传播方式是冒泡
想要实现捕获需要用语法:addEventListener
addEventListener 第三个参数默认值为false代表传播方式为冒泡,如果想改变传播方式为捕获, 需要将第三个参数传递为true
事件委托
因为事件冒泡的存在, 所以点击子元素时, 一定会触发给父级,所以可以将子元素统一的事件, 都提交给父级
e.target: 触发事件的事件源
为什么要用事件委托
动态的添加了li, 新加的li没有绑定上事件, 需要动态添加完成后重新绑定事件, 这样操作比较麻烦,所以此时可以利用事件委托
阻止默认事件
(1)语法:return false
跳转功能被拦截
(2)语法: e.preventDefault()
通过事件对象拦截