for (let i = 0; i < 6; i++) { let get1 = document.getElementById(list1[i]); let get2 = document.getElementById(list2[i]); get1.addEventListener('click', function() { for (let j = 0; j < list1.length; j++) { document.getElementById(list1[j]).style.width = "100%"; document.getElementById(list1[j]).style.height = "10vh"; let rsShow="rs"+(j+1); document.getElementById(rsShow).style.zIndex="5"; } get1.style.width = "90%"; get1.style.height = "8vh"; let rsShow="rs"+(i+1); document.getElementById(rsShow).style.zIndex="15"; }); }此时添加了当左部li点击时,右边对应的被隐藏的div的z-index调至15从而使其显现,但是添加了和这个功能相关的代码后出现了问题,例如左边点击li时li不会缩小
时间: 2024-04-16 10:26:40 浏览: 50
在你提供的代码中,问题可能是由于点击事件的冒泡导致的。当你在点击 `get1` 元素时,点击事件会冒泡到 `document.getElementById(list1[j])` 这些元素上,导致它们的样式也被修改。为了解决这个问题,你可以在事件监听器中使用 `event.stopPropagation()` 来停止事件冒泡。
以下是修复后的代码示例:
```javascript
for (let i = 0; i < 6; i++) {
let get1 = document.getElementById(list1[i]);
let get2 = document.getElementById(list2[i]);
get1.addEventListener('click', function(event) {
event.stopPropagation();
for (let j = 0; j < list1.length; j++) {
document.getElementById(list1[j]).style.width = "100%";
document.getElementById(list1[j]).style.height = "10vh";
let rsShow = "rs" + (j + 1);
document.getElementById(rsShow).style.zIndex = "5";
}
get1.style.width = "90%";
get1.style.height = "8vh";
let rsShow = "rs" + (i + 1);
document.getElementById(rsShow).style.zIndex = "15";
});
}
```
在修复后的代码中,我们在事件监听器中添加了 `event.stopPropagation()` 来停止事件冒泡。这样,在点击 `get1` 元素时,点击事件不会继续冒泡到其他元素上。这样就可以确保只有点击的元素会被修改样式,其他元素不受影响。
请尝试使用修复后的代码,并确保 HTML 中的元素 id 和数组中的对应元素一致,以便正确绑定事件和修改样式。