Avatar ·

如何用JavaScript检测元素外的点击?

大家好!我是JavaScript新手,正在编写一个下拉菜单。我需要它在用户点击菜单以外的任何地方时关闭。我尝试了很多方法,但都不太对。 以下是我当前的代码: ```javascript const menu = document.getElementById('myMenu'); document.addEventListener('click', function(event) { if (event.target !== menu) { menu.style.display = 'none'; } }); ``` 问题是,即使我点击菜单的内容(例如列表项或内部的按钮),菜单也会关闭。我明白event.target是点击的具体元素,而不是菜单容器本身。如何正确检查点击是否发生在元素外部(包括其所有子节点)?需要一个纯JavaScript解决方案,不使用jQuery。谢谢! <<>>

使用contains()方法

你的直觉是对的:event.target !== menu只检查菜单元素本身,而不检查其子元素。