Javascript 如何使用window.onclick检测div及其子项?
示例代码:Javascript 如何使用window.onclick检测div及其子项?,javascript,html,Javascript,Html,示例代码: window.onclick = function(event) { if(event.target.matches('.myDiv')){ DO THIS } } 可以理解,这只检查是否专门单击了myDiv 在不使用和不将myDiv的每个子项硬编码到if语句中的情况下,是否有方法检查是否单击了div及其任何子项?相反,您应该执行以下操作: var parent_div = document.getElementsByClassName("
window.onclick = function(event) {
if(event.target.matches('.myDiv')){
DO THIS
}
}
可以理解,这只检查是否专门单击了myDiv
在不使用
和不将myDiv
的每个子项硬编码到if语句中的情况下,是否有方法检查是否单击了div及其任何子项?相反,您应该执行以下操作:
var parent_div = document.getElementsByClassName(".myDiv");
parent_div.onclick = function(e) { /*DO SOMETHING*/ };
通过这种方式,您可以直接检查某个元素及其所有子元素的单击,而不是从窗口获取单击事件,然后检查它是否是您想要的元素。尝试如下操作:
window.onclick = function (event) {
if (event.target.classList.contains('myDiv')) {
event.target.remove();
}
}
正如在event.target.matches('.myDiv,.myDiv*')
中为后代或event.target.matches('.myDiv,.myDiv>*')
中为儿童?@BenjaminGruenbaum我后来意识到我不是很清楚event.target.matches('.myDiv,.myDiv>*')
正是我要找的。非常感谢!谢谢,这会有用的。实际上,我正在等待一次点击,并确保它不会发生在元素中。Benjamin的event.target.matches('.myDiv,.myDiv>*')
非常适合于我试图提出的问题,但这是对我意外提出的问题的一个很好的回答。是我的错。