冒泡、捕获

匿名 (未验证) 提交于 2019-12-02 23:49:02
 1 var father = document.getElementById('father');  2     var btn = document.getElementById('btn');  3   4     btn.addEventListener('click', function (event) {  5         // 阻止冒泡  6         if(event && event.stopPropagation){ // w3c标准  7             event.stopPropagation();  8         }else{ // IE系列 IE 678  9             event.cancelBubble = true; 10         } 11  12        alert('点击了按钮'); 13     }); 14  15     father.addEventListener('click', function (ev) { 16         // 阻止冒泡 17         if(event && event.stopPropagation){ // w3c标准 18             event.stopPropagation(); 19         }else{ // IE系列 IE 678 20             event.cancelBubble = true; 21         } 22  23         alert('点击了父标签'); 24     }); 25  26     document.addEventListener('click', function (ev) { 27         alert('点击了文档'); 28     }); 29  30 //阻止冒泡的兼容
 1  /*  2       element.addEventListener(event, function, useCapture)  3       可选。布尔值,指定事件是否在捕获或冒泡阶段执行。  4   5     可能值:  6     true - 事件句柄在捕获阶段执行   先触发父--子  7     false- false- 默认。事件句柄在冒泡阶段执行   先触发  子--父  8     */  9  10     var father = document.getElementById('father'); 11     var btn = document.getElementById('btn'); 12  13     btn.addEventListener('click', function (event) { 14         alert('点击了按钮'); 15     }, true); 16  17     father.addEventListener('click', function (ev) { 18         alert('点击了父标签'); 19     }, true); 20  21     document.addEventListener('click', function (ev) { 22         alert('点击了文档'); 23     }, true);

捕获阶段不能阻止冒泡

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!