javascript学习-addEventListener

DOM2中的addEventListener

当一个动作需要做多件事的时候使用。

element.addEventListener("事件名",执行函数,true/false)
  • 事件名没有on
  • 第三个参数:true表示捕获阶段触发,false表示冒泡阶段触发(默认)。

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<button>按钮</button>
		<script type="text/javascript">
			var btn=document.querySelector("button");
			btn.onclick=function(){
				var h1=document.createElement("h1");
				h1.innerHTML="helloworld";
				document.body.appendChild(h1);
				
				}
			var fn=function(){
				document.body.style.backgroundColor='aquamarine';
			}
			btn.addEventListener("click",fn);//事件名称,执行函数
			var fn=function(){
				var div=document.createElement("div");
				div.innerHTML="新增加的div";
				document.body.appendChild(div);
				
			}
			btn.addEventListener("click",fn)
		</script>
	</body>
</html>

结果:
在这里插入图片描述
冒泡的例子:
由内层一层一层向外冒

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div class="parent">
			<div class="child">
				<button type="button">按钮</button>
			</div>
		</div>
		<script type="text/javascript">
			    var btn = document.querySelector("button")
				var child = document.querySelector(".child")
				var parent = document.querySelector(".parent")
				var body = document.querySelector("body");
				var html = document.querySelector("html")
				
				     btn.addEventListener("click",function(){
								console.log("btn listen")
								
							})
					child.addEventListener("click",function(){
								console.log("child listen")
					})
							parent.addEventListener("click",function(){
								console.log("parent listen")
							})
							body.addEventListener("click",function(){
								console.log("body listen")
							})
							html.addEventListener("click",function(){
								console.log("html listen")
							})
		</script>
	</body>
</html>

结果:
在这里插入图片描述
addEventListener当第三个参数设置为true表示捕获阶段触发。
捕获例子:从外层父元素开始向内

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div class="parent">
			<div class="child">
				<button type="button">按钮</button>
			</div>
		</div>
		<script type="text/javascript">
			    var btn = document.querySelector("button")
				var child = document.querySelector(".child")
				var parent = document.querySelector(".parent")
				var body = document.querySelector("body");
				var html = document.querySelector("html")
				
				     btn.addEventListener("click",function(){
								console.log("btn listen")
								
							},true)
					child.addEventListener("click",function(){
								console.log("child listen")
					},true)
							parent.addEventListener("click",function(){
								console.log("parent listen")
							},true)
							body.addEventListener("click",function(){
								console.log("body listen")
							},true)
							html.addEventListener("click",function(){
								console.log("html listen")
							},true)
		</script>
	</body>
</html>

结果:
在这里插入图片描述

【注】事件可通过以下方式移除

btn.removeEventListener("click",fn);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值