Изменение сценария showhide так, чтобы он скрывал дочерние уровни - PullRequest
0 голосов
/ 01 ноября 2011

Я использую скрипт showhide, который я изменил, чтобы включить его для разных уровней меню.В настоящее время у меня есть:

<script type="text/javascript">
visibleDiv1 = "";
function showHide1(elementid1,qstring){
  if (document.getElementById(elementid1).style.display == 'none'){
    document.getElementById(elementid1).style.display = '';
    if(visibleDiv1 != ""){
      if(visibleDiv1 != elementid1){
        document.getElementById(visibleDiv1).style.display = 'none';
      }
    }
    visibleDiv1 = elementid1;
  } else {
   document.getElementById(elementid1).style.display = 'none';
  }
}

visibleDiv2 = "";
function showHide2(elementid2,qstring){
  if (document.getElementById(elementid2).style.display == 'none'){
    document.getElementById(elementid2).style.display = '';
    if(visibleDiv2 != ""){
      if(visibleDiv2 != elementid2){
        document.getElementById(visibleDiv2).style.display = 'none';
      }
    }
    visibleDiv2 = elementid2;
  } else {
    document.getElementById(elementid2).style.display = 'none';
  }
}

visibleDiv3 = "";
function showHide3(elementid3,qstring){
  if (document.getElementById(elementid3).style.display == 'none'){
    document.getElementById(elementid3).style.display = '';
    if(visibleDiv3 != ""){
      if(visibleDiv3 != elementid3){
        document.getElementById(visibleDiv3).style.display = 'none';
      }
    }
    visibleDiv3 = elementid3;
  } else {
    document.getElementById(elementid3).style.display = 'none';
  }
}

visibleDiv4 = "";
function showHide4(elementid4,qstring){
  if (document.getElementById(elementid4).style.display == 'none'){
    document.getElementById(elementid4).style.display = '';
    if(visibleDiv4 != ""){
      if(visibleDiv4 != elementid4){
        document.getElementById(visibleDiv4).style.display = 'none';
      }
    }
    visibleDiv4 = elementid4;
  } else {
    document.getElementById(elementid4).style.display = 'none';
  }
}
</script>

И в основном я хочу, чтобы ShowHide1 также скрывал visibleDiv2,3,4, когда я нажимаю кнопку, связанную с функцией.ShowHide2, чтобы скрыть 3,4, и ShowHide3, чтобы скрыть 4. Поскольку у меня есть содержимое страницы в каждом из div, которое я не хочу отображать, когда родительский div открыт.

Может кто-нибудь помочь мне?

Спасибо!

1 Ответ

1 голос
/ 01 ноября 2011

да, я могу помочь попробовать

<input type="button" value="one" id="show_1" onclick="hideShow(this)"> 

Обратите внимание, что каждая из кнопок id's, например, должна иметь цифру в конце

show_ 1,

show_ 2 .....

.

 var arr_divids = ['div_1','div_2','div_3','div_4']; // ids for each of the content to be shown in 

 function hideShow(oWhich){
   for (var i =1; i < arr_divids.length+1; i++) {
     document.getElementById(arr_divids[i-1]).style.display = (i == (oWhich.id).slice(-1)) ? "block" : "none";
    }
  }
...