我一直在使用 JavaScript 组合手风琴式左导航,我遇到了以下代码在 Chrome 和 Firefox 中有效但在 IE 中无效的问题。
function navClick(clickedDD){
var numDD = document.getElementsByClassName('navDropdown');
var numArrow = document.getElementsByClassName('navUnfolded');
var selectedDD = document.getElementById('dd0' + clickedDD);
var arrow = document.getElementById('arrow0' + clickedDD);
if (selectedDD.style.display == 'none') {
for (var i = numDD.length - 1; i >= 0; i--) {
numDD[i].style.display = 'none';
}
}
if (arrow.className == 'navFolded') {
for (var i = numArrow.length - 1; i >= 0; i--) {
numArrow[i].className = 'navFolded';
}
}
if (selectedDD.style.display == 'none') {
selectedDD.style.display = 'block';
arrow.className = 'navUnfolded';
} else {
selectedDD.style.display = 'none';
arrow.className = 'navFolded';
}
}
我不确定是什么让它无法运行,但我怀疑这是我在 onclick 中使用的“this.id”。
<div id="1" onclick="navClick(this.id);">Content</div>
我对 JavaScript 比较陌生,如果知道有帮助的话。基本上,此函数首先查看是否显示单击的 div,如果没有,则在继续之前将所有 div 的 display 设置为 none。如果显示它,它什么也不做,因为下一位将处理它。对于带有变化的箭头图像的 div,也有类似的规则。然后,如果没有显示 div,则将其设置为“阻止”,否则将其设置为“无”,这使我可以打开和关闭单个菜单 div,而无需打开/关闭其他菜单。
我正在使用 onclick 函数收集的 id 来控制具有不同 id 的 div,从底部到函数顶部的变量中可以看到。也许这就是 IE 变得敏感的地方。
任何帮助表示赞赏。