<!DOCTYPE html>
<html>
<head>
<style>
.dropdown-content a{
display: block;
background-color: blue;
}
</style>
</head>
<body>
<div class="dropdown-content">
<a>1</a>
<a>2</a>
</div>
<script>
window.onclick = function(event){
if(!event.target.matches('.dropdown-content')){
alert("foo");
}
};
</script>
</body>
</html>
我试图让 alert(foo);
仅当我们没有点击正文中 div
标签内的任何内容时才执行。不幸的是,无论我点击哪里,它都会执行。为什么?
原文由 Sahand 发布,翻译遵循 CC BY-SA 4.0 许可协议
获取您的元素并使用 contains 检查点击是在内部还是外部。如果在外面然后警报。
matches
不工作,因为您正在单击a
没有.dropdown-content
标签的标签。所以每次价值都是假的。它alert('foo')