为什么false改为true,结果是这样的?

来源:3-1 DOM中的事件对象

飞天意大利面神兽

2016-05-20 14:34

				var even={
					addandler:function(element,type,handler){
						if(element.addEventListener){
							element.addEventListener(type,handler,false);
						}else if(element.attachEvent){
							element.attachEvent(type,"on"+handler,false);
						}else{
							element["on"+type]=handler;
							}
						}
					}

把其中的false改成true,点击的结果是,先是触发了最外层的onclik事件,然后再触发this的onclik事件。相反了。请问这是为什么?


http://www.imooc.com/video/2139

写回答 关注

5回答

  • weibo_哆啦A梦有大口袋_0
    2016-05-20 15:40:49
    已采纳

    当false时,为事件冒泡流,

    即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点) 接受,然后逐级向上传播至最不具体的那个节点(文档)。

    当为true时,为事件捕获流

    不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件。

    请看1-1事件冒泡和1-2事件捕获,建议你边学边做笔记,好记性不如烂笔头




    飞天意大利面...

    非常感谢!

    2016-05-21 12:33:42

    共 1 条回复 >

  • 慕移动9181930
    2022-03-28 19:07:26

    可以用string的方法split()来删除中间的空格

    jejndkujqqgomgqnifbnncakfgkgxrmzaroddxuwhtrtxp

  • weibo_哆啦A梦有大口袋_0
    2016-05-20 15:49:38

    不好意思,第二行是回答其他问题的,

  • weibo_哆啦A梦有大口袋_0
    2016-05-20 15:48:37
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
    window.onload=function(){
    var bt=document.createElement("input");
    bt.type="button";
    bt.value="按钮";
    bt.id="btn";
    document.body.appendChild(bt);
    bt.style.width="160px";
    bt.style.height="60px";
    //请把点击事件加载window.onload里面
    var a=document.getElementById("btn");
    a.addEventListener("click",asd,false);
    }
    function asd(){
    alert(this.value);
    }
    </script>
    </head>
    <body>
    </body>
    </html>

    解决问题请采纳,谢谢

  • Daybreak01234
    2016-05-20 15:12:36

    一个是按事件冒泡的顺序,一个是按事件捕获的顺序

    飞天意大利面...

    感谢!

    2016-05-21 12:34:11

    共 1 条回复 >

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99546 学习 · 1197 问题

查看课程

相似问题