javascript - 如何添加:hover and click event to element same time?

标签 javascript css pseudo-class dom-events

当我悬停父元素时,他的 child 出现了。当我单击父元素时,他的 child 也会出现,当我再次单击它时,他的 child 会消失。但是然后(在单击消失的子元素的父元素之后)当我将鼠标悬停在父元素上时,他的 child 没有出现。为什么?

var parent = document.querySelector('nav > ul > li');
var children = document.querySelector('nav > ul > li > ul');

parent.addEventListener('click', function () {
  if (children.style.display == 'block') {
    children.style.display = 'none';
  } else {
    children.style.display = 'block';
  }
});
nav > ul > li > ul {
  display: none;
}

nav > ul > li:hover ul {
  display: block;
}

li {
  width: max-content;
}

ul {
  padding: 0px;
}
  <body>
    <nav>
      <ul>
        <li><a href="#">Parent</a>
          <ul>
            <li><a href="#">child</a></li>
            <li><a href="#">child</a></li>
          </ul>
        </li>
      </ul>
    </nav>
  </body>

谢谢。

最佳答案

单击父类时更容易切换类。

var parent = document.querySelector('nav > ul > li');
var children = document.querySelector('nav > ul > li > ul');

parent.addEventListener('click', function() {
  children.classList.toggle("showIt");
});
nav>ul>li>ul {
  display: none;
}

nav>ul>li:hover ul {
  display: block;
}

li {
  width: max-content;
}

ul {
  padding: 0px;
}

.showIt {
  display: block;
}
<body>
  <nav>
    <ul>
      <li><a href="#">Parent</a>
        <ul>
          <li><a href="#">child</a></li>
          <li><a href="#">child</a></li>
        </ul>
      </li>
    </ul>
  </nav>
</body>

关于javascript - 如何添加:hover and click event to element same time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52121125/

相关文章:

javascript - 模态框关闭后,如何在屏幕上显示两个图像?

css - 是否可以使用 Tailwind CSS 链接伪类?

css - :target pseudo-class not working properly in firefox

javascript - CKEditor 5 和 ReactJS : I can't edit the toolbar

javascript - BigQuery 用户定义函数中的 Base64 编码

javascript - Backbone.js:从 View 的 Initialize: 函数调用 render()

javascript - 没有括号的函数返回一个奇怪的输出

javascript - 根据 4 个下拉选项显示特定内容

具有背景图像更改的 CSS3 Transition 旋转 div

javafx - 伪类 : notification from states broken on setting custom state