首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以event.target.matches('.class-1.class-2‘> .class-3')

是否可以event.target.matches('.class-1.class-2‘> .class-3')
EN

Stack Overflow用户
提问于 2018-10-10 00:35:41
回答 2查看 413关注 0票数 0

基本上,我想做这样的事情:

代码语言:javascript
复制
<my-root-element id="myID">
    <button id="some-id">Occupy The Universe</button>
    <div id="x" class="class-1 class-1a">
        <div id="y" class="class-3">
        <p>Rabit hole</p>
    </div>
</div>
</my-root-element>

let rootEl = document.getElementById(myID);
rootEl.addEventListener('click', function(e) {
    if (e.target && e.target.matches('button#some-id')) {
        console.log("Did something nasty");
    } else if (e.target && e.target.matches('.class-1.class-1a') || e.target && e.target.matches('.class-1.class-1a > .class-3')) {
        console.log("Was there");
    }
});

我发现类嵌套不起作用,但也许我遗漏了什么?如果这两个东西都做同样的事情,我想在一起做这件事。看起来querySelector支持嵌套类,但不知道如何在其中实现它。

EN

回答 2

Stack Overflow用户

发布于 2018-10-10 02:06:57

看起来#x的简单样式很有帮助。一个不再需要的||部件。

代码语言:javascript
复制
> * {
    pointer-events: none;
}
票数 0
EN

Stack Overflow用户

发布于 2021-11-04 18:17:52

下面给出了适用于我的解决方案,当我单击图像Profile按钮文本时,它会出现并进行切换

代码语言:javascript
复制
/* When the user clicks on the button, 
toggle between hiding and showing the dropdown content */
function userProfile() {
    document.getElementById("myDropdown").classList.toggle("show");
  }
  
  // Close the dropdown if the user clicks outside of it
  window.onclick = function(event) {
    if (!event.target.matches(['.dropbtn', '.profile'])) {
      var dropdowns = document.getElementsByClassName("dropdown-content");
      var i;
      for (i = 0; i < dropdowns.length; i++) {
        var openDropdown = dropdowns[i];
        if (openDropdown.classList.contains('show')) {
          openDropdown.classList.remove('show');
        }
      }
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52725598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档