1

概念

  1. 事件委托,就是某个事件本来该自己干的,但是自己不干,交给别人来干。就叫事件委托。打个比方:一个button对象,本来自己需要监控自身的点击事件,但是自己不来监控这个点击事件,让自己的父节点来监控自己的点击事件。
  2. 冒泡机制,就是父节点监控着一块区域的点击事件,当点击事件触发时,会根据坐标来判断是哪一块区域被点击,然后确定事件对象的target属性或者说是srcelement属性。确定好了之后,这个事件对象,会往上一层一层的传递,如果当前的事件调用了stopPropagation();那么事件将会停留在这一层,也就是说,事件将不会被之上的层进行监控了

clipboard.png
至于说事件委托和冒泡机制的关系,按照我的理解,事件委托知识一种描述性的概念,二冒泡机制才是一种具体的实现方式。

var toolbar = document.querySelector(".toolbar");
toolbar.addEventListener("click", function(e) {
 var button = e.target;//e就表示事件
 if(!button.classList.contains("active"))
  button.classList.add("active");
 else
  button.classList.remove("active");
});

serendipity
106 声望0 粉丝

REST