日期:2014-05-16  浏览次数:20376 次

请教事件冒泡和事件捕捉的写法
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body onclick="alert('body')">
    <div id="dv" style="width:100px;height:100px;border:1px solid red"  onclick="alert('div')">
        
    </div>
</body>
</html>


这样是先弹出div,再弹出body,似乎这叫做事件冒泡,从外向里 渗透

而看百度百科介绍,事件捕捉是从里向外,

那么就以上代码,如何先弹出body,再弹出div,有没有这个可能?

------解决方案--------------------
捕获是从DOM tree的根向子元素传播的过程,冒泡反之由当前元素向父元素的方向进行。传统的dom.onclick=function(){}写法是DOM0事件,实现捕获需要使用addEventListener方法及对应参数,JS和DOM如下

HTML code
<body> 
  <div id="div1">text</div>
</body>

------解决方案--------------------
注册handler时默认的处理应该是在冒泡阶段,如楼上所说可以在添加handler时设置最后的参数为true,即可将handler应用到捕获阶段