在上述解决方案的基础上,修改出如下效果:当点击二级菜单项时,不收缩二级菜单项
时间: 2024-02-23 21:59:35 浏览: 18
要实现这个效果,可以在点击二级菜单项时,阻止其向上冒泡,即不触发父级菜单项的收缩事件。具体的做法可以在二级菜单项的点击事件处理函数中添加以下代码:
```javascript
event.stopPropagation();
```
这样就可以阻止事件冒泡,从而实现点击二级菜单项时不收缩二级菜单项的效果。完整的代码示例可以参考下面的代码:
```html
<ul>
<li class="parent">
一级菜单项
<ul class="child">
<li>二级菜单项 1</li>
<li>二级菜单项 2</li>
</ul>
</li>
<li class="parent">
一级菜单项
<ul class="child">
<li>二级菜单项 1</li>
<li>二级菜单项 2</li>
</ul>
</li>
</ul>
<script>
var parents = document.querySelectorAll('.parent');
for (var i = 0; i < parents.length; i++) {
parents[i].addEventListener('click', function(event) {
var child = this.querySelector('.child');
if (child.classList.contains('show')) {
child.classList.remove('show');
} else {
child.classList.add('show');
}
});
}
var children = document.querySelectorAll('.child li');
for (var i = 0; i < children.length; i++) {
children[i].addEventListener('click', function(event) {
event.stopPropagation();
});
}
</script>
```