我只是想我可以在 ul 元素上使用事件委托,以便单击任何 li 元素都会冒泡到 ul。然后由 ul 的 event.target 捕获以获取正确的 li 元素并根据我对 li 的需要进行处理。这就是我学习的方式。但是单击联系人 li 元素并没有像预期的那样发出警报。请帮我解决一下这个。我的公司强迫我使用事件委托。这就是为什么这很重要。
HTML
<!doctype html>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" type="text/css" href="style.css" >
<script src="JavaScript.js"></script>
</head>
<body>
<div>
<ul id="nav">
<li id="click"><a href="#">Contact</a></li>
<li> <a href="#">Blog</a></li>
<li> <a href="#">Work</a></li>
<li> <a href="#">About</a></li>
<li> <a href="#">Home</a></li>
</ul>
</div>
</body>
</html>
JS
var list = document.getElementById("nav");
list.addEventListener("click", function(event) {
switch(event.target.id) {
case "click":
alert("haha");
break;
}, false);
CSS
body {
margin: 0;
}
#nav {
list-style-type: none;
margin: 0;
padding: 0;
}
#nav li {
width: 20%;
float: left;
text-align: center;
display: inline;
}
#nav li a {
line-height: 40px;
display: block;
padding: 0.5em 5px;
text-decoration: none;
font-weight: bold;
color: #F2F2F2;
-webkit-box-shadow: 3px 3px 3px rgba(51,51,51,0.3);
box-shadow: 3px 3px 3px rgba(51,51,51,0.3);
}
#nav a:link, #nav a:visited {
background-color: #071726;
}
#nav a:hover, #nav a:active, #nav a:focus {
background-color: #326773;
}