【JS】事件传播
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.outer {
width: 400px;
height: 400px;
background-color: #fc4a62;
margin: 0 auto;
}
.center {
width: 300px;
height: 300px;
background-color: #4a7cfc;
margin: 0 auto;
}
.inner {
width: 200px;
height: 200px;
background-color: #dec318;
margin: 0 auto;
}
ul{
width: 400px;
height: 30px;
background-color: #fc4a62;
}
li{
width: 100px;
background-color: #fde348;
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
cursor: pointer;
float: left;
margin-right:10px ;
}
</style>
</head>
<body>
<div class="outer">
<div class="center">
<div class="inner"></div>
</div>
</div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<script>
var outer=document.querySelector('.outer')
var center=document.querySelector('.center')
var inner=document.querySelector('.inner')
//事件传播
outer.onclick=function () {
console.log("我是outer,我被点击了!")
}
center.onclick=function () {
console.log("我是center,我被点击了!")
}
//阻止事件传播
inner.onclick=function (e) {
e.stopPropagation()
console.log("我是inner,我被点击了!")
}
// 事件委托
var ul=document.querySelector('ul')
ul.onclick=function (e) {
console.log('点击事件触发')
console.log(e.target)
if (e.target.tagName==='LI'){
console.log("你点击的是li")
}
}
</script>
</body>
</html>
作者:木子欢儿
出处:https://www.cnblogs.com/HGNET/p/16494676.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
部分文章来源于网络,如疏漏未标注原文地址或侵权,请联系进行删除。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!