阻止事件默认行为
- 默认行为:
-
- 有很多标签默认是有事件的,例如
a标签
,他默认也有点击事件,点击事件的效果是跳转 - 我们把它这种默认具备的事件触发的行为,称之为事件默认行为
- 有很多标签默认是有事件的,例如
-
- 可是很多时候我不需要触发它的默认行为
- 阻止事件默认行为
事件对象.preventDefault()
事件委托
- 是指把需要给子元素添加的事件,委托给父元素来触发
- 如果多个子元素要加事件,而且还要保证动态添加的子元素有事件,一定要用事件委托更方便
-
- 因为这种情况如果不用事件委托,会浪费内存,且动态添加的子元素默认不会有事件
- 事件委托语法
父元素.addEventListener('事件名', function (e) { if (e.target.tagName == 'LI') { // 写事件要做的代码 } })
- 原理:利用了事件冒泡默认存在,所以不管是哪个子元素触发都会冒泡到父元素
- 但是很多时候我又不希望所有子元素都能触发,所以在父元素上还会做判断,判断是不是我们想要触发的元素来触发的
- 知识点:
-
- e.target:获取的是真正触发事件的元素
- tagName:获取的是大写的标签名