Javascript:双击链接可隐藏元素

时间:2018-09-25 13:58:50

标签: javascript html

我对Java语言还很陌生,并且将以前论坛中找到的代码拼凑在一起,以汇编我所拥有的东西。我目前正在制作尺寸表,可以查看英寸和厘米版本。单击“英寸和厘米”链接时,我能够获得两个单独的图表以正确查看...但是,当您查看表格并单击相应的链接时,它将折叠。我真诚地感谢任何方向!

var divs = ["Inches", "Centimeters"];
var visibleDivId = null;
function divVisibility(divId) {
  if(visibleDivId === divId) {
    visibleDivId = null;
  } else {
    visibleDivId = divId;
  }
  hideNonVisibleDivs(divId);
}
function hideNonVisibleDivs() {
  var i, divId, div;
  for(i = 0; i < divs.length; i++) {
    divId = divs[i];
    div = document.getElementById(divId);
    if(visibleDivId === divId) {
      div.style.display = "block";
    } else {
      div.style.display = "none";
    }
  }
}

1 个答案:

答案 0 :(得分:0)

如果您单击的div是当前visibleDivId,则将visibleDivId设置为null并隐藏其值与visibleDivId不匹配的所有div(这对于所有div都是正确的,因为您的visibleDivIdnull,而您的div都不是null),因此所有div都被隐藏了。

修复:当您单击的div与visibleDivId相同时,请勿将null设置为visibleDivId。实际上,在这种情况下,您无需执行任何操作。

这应该很好用

var divs = ["Inches", "Centimeters"];
var visibleDivId = null;

function divVisibility(divId) {
    if (visibleDivId !== divId) {
        visibleDivId = divId;
        hideNonVisibleDivs();
    }
}

function hideNonVisibleDivs() {
    var i, divId, div;
    for (i = 0; i < divs.length; i++) {
        divId = divs[i];
        div = document.getElementById(divId);
        if (visibleDivId === divId) {
            div.style.display = "block";
        } else {
            div.style.display = "none";
        }
    }
}