🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>**原题:解析一下DOM事件流** 答:DOM事件流分三个阶段,自上而下的捕获,作用在最深处的目标阶段,以及自下而上的冒泡 >如何消除事件冒泡与事件默认行为 给目标函数一个event参数, 用event.stopPropagation();消除事件冒泡; 用event.preventDefault();阻止默认行为, 对于a标签也可以将标签链接改成`javascript:void(0)`阻止 >DOM0级事件与DOM2级事件的区别 1. DOM0级只能添加一个事件,后面添加的事件会覆盖前面的 2. DOM2级可以添加多个事件 3. DOM2级可以可以接受三个参数,将第三个参数改成true,可以控制捕获事件的执行,默认为false ``` three.addEventListener("click", function(){ console.log('这是three') }, true) ``` ----- > 事件捕获:事件从上至下执行 ```js <div class="parent" id="parent"> <div class="child" id="child"></div> </div> <script> var parent = document.getElementById('parent') var child = document.getElementById('child') parent.addEventListener('click', function(){ console.log('parent'); }, true) child.addEventListener('click', function(){ console.log('child'); }, true) </script> ``` 此時,先打印 parent 再打印 child ,冒泡則相反 参考[addEventListener用法](https://blog.csdn.net/juelingfeng/article/details/45564023)