JavaScript示例六(事件冒泡与捕获)

本文通过一个具体的HTML示例介绍了事件冒泡与事件捕获的概念及其在JavaScript中的实现方式。示例中包含了不同元素上的点击事件处理,展示了如何通过addEventListener设置事件监听器,并分别在冒泡阶段和捕获阶段触发不同的事件处理函数。
<html>
	<head>
		<title>
			事件冒泡与事件捕获示例
		</title>
		<style type="text/css">
			div{
				color:red;
			}
		</style>
	</head>
	<body>
	<div id="myDiv" class="main" onclick="alert('click div');">
		<p>div接受点击事件</p>
		<form method="post">
			<input type="text" name="username" value="zhang">
			<input type="button" id="mybtn" value="click me">
		</form>	
	</div>

	<ol id="dropdown">
		<li><a href="#">List item 1</a>
			<ol>
				<li><a href="#">List item 1.1</a></li>
				<li id="myli"><a href="#">List item 1.2</a></li>
				<li><a href="#">List item 1.3</a></li>
			</ol>
		</li>

	</ol>

	<script type="text/javascript">
		var btn=document.getElementById("mybtn");
		var myol=document.getElementById("dropdown");
		var myli=document.getElementById("myli");

		var handler=function(event){
			switch (event.type){
				case "click":
					alert("click button");
					break;
				/*
				case "mouseover":
					event.target.style.backgroundColor="green";
					alert(event.screenX+","+event.screenY);
					break;
				case "mouseout":
					event.target.style.backgroundColor="";
					break;
				*/
			}
		}

		var handler2=function(){
			alert("click ol");
		}

		var handler3=function(){
			alert("click li");
		}
		
		//冒泡阶段处理事件,自下而上执行
		btn.addEventListener("click",handler,false);
		btn.addEventListener("mouseover",handler,false);
		btn.addEventListener("mouseout",handler,false);
		
		//捕获阶段处理事件,自上而下执行
		myol.addEventListener("focus",handler2,true);
		myli.addEventListener("focus",handler3,true);
	</script>
	</body>
</html>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值