前端基础之事件
2018-03-29 00:41
211 查看
事件
知识点
通用事件监听
function bindEvent(elem, type, fn) { ele.addEventListener(type, fn) } var a = document.getElementById('link1') bindEvent(a, 'click', function(e) { e.preventDefault() //阻止默认行为 alert('clicked') })
事件冒泡
会一层一层往上触发事件使用
stopPropatation()阻止冒泡
代理
<div> <a href="#">a1</a> <a href="#">a2</a> <a href="#">a3</a> <a href="#">a4</a> </div>
var div1 = document.getElementById('div1') div1.addEventListener('click', function (e) { var target = e.targrt if (target.nodeName === 'A') { alert(target.innerHTML) } })
题目
编写一个通用的事件监听函数<div id="div1"> <a id="a1" href="https://www.baidu.com">baidu</a> <a href="https://www.imooc.com/">imooc</a> <p id="p1">激活</p> <p id="p2">取消</p> </div> <div id="div2"> <p id="p3">激活</p> <p id="p4">取消</p> </div>
<script type="text/javascript"> function bindEvent(elem, type, selector, fn) { if (fn == null) { fn = selector selector = null } elem.addEventListener(type, function (e) { if (selector) { var target = e.target if (target.matches(selector)) { fn.call(target, e) } } else { fn(e) } }) } //使用代理 var div1 = document.getElementById('div1') bindEvent(div1, 'click', 'a', function (e) { e.preventDefault() console.log(this) }) var p1 = document.getElementById('p1') bindEvent(p1, 'click', function(e) { console.log(e.target) })
描述事件冒泡流程
DOM树形结构
事件冒泡
阻止冒泡
冒泡的应用(代理)
对于一个无限下拉加载图片的页面,如何给每个图片绑定事件
使用代理
相关文章推荐
- 前端学习笔记--jQuery--基础知识--事件篇
- 前端基础进阶(十二):深入核心,详解事件循环机制
- 前端基础-jQuery的事件的用法
- 前端基础 JS DOM事件(2)
- 前端基础(10):jQuery学习-1(概念/选择器/事件)
- 前端基础进阶(十):深入核心,详解事件循环机制
- WEB前端 | JS基础——(9-3)事件冒泡与绑定
- WEB前端 | JS基础——(11)移动端事件
- Web前端开发css基础样式总结
- 前端基础笔记05
- 前端性能优化基础
- 前端 JavaScript基础
- 前端系列之JavaScript基础知识概述
- 系统学习前端之HTML基础
- Web前端学习(4)_BOM编程_事件编程
- Python爬虫——web前端基础XPath、Json和HTTP
- jQuery基础学习一 简介、选择器、事件
- Android基础之Listview的滚动事件的学习
- js实现类似jquery基础功能 简单选择器/事件/属性
- javascript基础修炼(6)——前端路由的基本原理