为了账号安全,请及时绑定邮箱和手机立即绑定

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

				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 回答

当false时,为事件冒泡流,

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

当为true时,为事件捕获流

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

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




2 回复 有任何疑惑可以回复我~
#1

飞天意大利面神兽 提问者

非常感谢!
2016-05-21 回复 有任何疑惑可以回复我~

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

jejndkujqqgomgqnifbnncakfgkgxrmzaroddxuwhtrtxp

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
<!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>

解决问题请采纳,谢谢

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

飞天意大利面神兽 提问者

感谢!
2016-05-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信