【发布时间】:2018-08-31 18:39:59
【问题描述】:
当我悬停父元素时,他的孩子出现了。当我单击父元素时,他的孩子也会出现,当我再次单击它时,他的孩子会消失。但是然后(在单击父元素消失的孩子之后)当我悬停父元素时,他的孩子没有出现。为什么?
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>
谢谢。
【问题讨论】:
-
JavaScript 为覆盖样式表的元素添加内联样式
-
问题是当你直接在元素上设置css属性时,它的特异性大于样式。
标签: javascript css pseudo-class dom-events