JavaScript事件未按预期工作

JavaScript事件未按预期工作,javascript,Javascript,这里的JavaScript代码不是应该提醒“你点击了这里的联系人。我没有得到相同的结果。请更正错误。” HTML <!doctype html> <html> <head> <title>Title</title> <link rel="stylesheet" type="text/css" href="style.css" > <script src="JavaScript.js"></script>

这里的JavaScript代码不是应该提醒“你点击了这里的联系人。我没有得到相同的结果。请更正错误。”

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>

您正在挖掘错误的内容。
event.target
是您正在单击的项目,
event.type
是触发的事件类型:

var list = document.getElementById("nav");
list.addEventListener("click", function (event) {
    switch (event.type) {
        case "click":
            alert("haha");
            break;
    }
}, false);
小提琴:

编辑:如果您只需要id为
联系人
点击
发出警报,我建议您尝试以下方法:

var list = document.getElementById("click");
list.addEventListener("click", function (event) {
    alert("haha");
}, false);
小提琴:


希望这有帮助。

我犯了一个错误字符串是我期望的哈哈。请单击“编辑”并将问题更新为您实际期望的内容。这也有助于说明发生了什么。我相信您希望使用
event.target.id
而不是
event.target.type.id
。但这“不起作用”“因为单击的元素是链接而不是li元素。您必须从单击的元素遍历DOM树,并测试是否有任何祖先具有这样的ID,或者简单地将ID分配给链接。不,这只是因为堆栈溢出显示我的q充满了代码。元素也具有ID“click”。@dystroy啊,我错过了这一点。如果他打算用一个id来装饰它,那么将事件处理程序附加到id上就更有意义了,不是吗?它会对所有li元素发出警报。我只希望联系人也一样。:-(@user2899508你点击小提琴并尝试了吗…?@user2899508那么为什么不绑定到联系人li的id?如下所示:
var list = document.getElementById("click");
list.addEventListener("click", function (event) {
    alert("haha");
}, false);