1.事件委托

原理:事件委托是最好理解的那个,我们要给每一个按钮绑定一个事件,但是这样遍历,太消耗性能了,于是我们直接给父元素绑定即可完成。解决了以下几个问题:

1、遍历带来的性能问题。
2、button如果是动态添加的,那么必须用事件委托。
3、由于事件委托是通过事件冒泡实现的,所以如果子级的元素(e.stopPropagation())阻止了事件冒泡,那么事件委托也将失效!

2.事件冒泡

当触发子元素的方法时,会一步步往上扩散,如果父元素也有此类方法也会触发

解决事件冒泡

  1. 把要冒泡的代码,添加e.stopPropagation();
  2. 阻止就可以完成,在微信小程序里,把bindTap改成catchTap

3.事件捕获

事件流包含三个阶段:

事件捕捉阶段:事件开始由顶层对象触发,然后逐级向下传播,直到目标元素;

处于目标阶段:处在绑定事件的元素上;

事件冒泡阶段:事件由具体的元素先接收,然后逐级向上传播,直到不具体的元素;

4.阻止事件传播

  1. // 阻止事件的进一步传播,但仍旧会执行接下来的代码<br /> event.stopPropagation();