1.事件委托
原理:事件委托是最好理解的那个,我们要给每一个按钮绑定一个事件,但是这样遍历,太消耗性能了,于是我们直接给父元素绑定即可完成。解决了以下几个问题:
1、遍历带来的性能问题。
2、button如果是动态添加的,那么必须用事件委托。
3、由于事件委托是通过事件冒泡实现的,所以如果子级的元素(e.stopPropagation())阻止了事件冒泡,那么事件委托也将失效!
2.事件冒泡
当触发子元素的方法时,会一步步往上扩散,如果父元素也有此类方法也会触发
解决事件冒泡
把要冒泡的代码,添加e.stopPropagation();
阻止就可以完成,在微信小程序里,把bindTap改成catchTap。
3.事件捕获
事件流包含三个阶段:
事件捕捉阶段:事件开始由顶层对象触发,然后逐级向下传播,直到目标元素;
处于目标阶段:处在绑定事件的元素上;
事件冒泡阶段:事件由具体的元素先接收,然后逐级向上传播,直到不具体的元素;
4.阻止事件传播
// 阻止事件的进一步传播,但仍旧会执行接下来的代码<br /> event.stopPropagation();