Бывает нужно сделать так, чтобы при клике на один элемент он открывался, а другие были скрыты. Например, чтобы при открытии одного выпадающего блока, другие автоматом скрывались. Делается это на javascript очень просто.

<!--тут все просто, создаем кнопки или иные объекты по которым будем кликать
и объекты которые будем скрывать/показывать-->
<input type='button' onClick="visible_hide('call')" value='Первый'/><br />
<input type='button' onClick="visible_hide('call1')" value='Второй'/><br />
<input type='button' onClick="visible_hide('call2')" value='Третий'/><br />

<div id="call" class='hide' style='background:#0F0;'>
1
</div>
<div id="call1" class='hide' style='background:#F00;'>
2
</div>
<div id="call2" class='hide' style='background:#00F;'>
3
</div>

Затем, добавляем в тело документа скрипт.

<script type="text/javascript">
function visible_hide(id)
{//в принципе, если элементов много, то создание массива
//можно тоже сделать функцией, но в данном случае это не обязательно
  massive = new Array(3);	//указываем сколько у нас элементов
  massive[0]="call";		//вносим в массив id элементов
  massive[1]="call1";
  massive[2]="call2";
  //проходим циклом по всем элементам массива
  for(i=0; i<3; i++)
  {
    if(massive[i]!=id) {	// и скрываем все кроме выбранного
		document.getElementById(massive[i]).className="hide";
		}
  }	//выбираем элемент с указанным id
  el = document.getElementById(id);
  if(el.className=="hide"){ //если он скрыт - показываем
  el.className="visible" //если не скрыт - скрываем
  }else{  el.className="hide"  }
}
</script>

Ну и немного стилей для наглядности.
Храните их в шапке или в отдельном подключаемом файле стилей.

/*всем блокам задаем размеры и положение*/
#call,#call1,#call2{
width:50px;
height:50px;
margin-left:50px;
float:left;
}
/*класс отображаемых объектов*/
.visible{
display:block;
}
/*класс скрытых объектов*/
.hide{
display:none;
}

Вот собственно и все, по ссылке ниже, можете посмотреть на то, что получилось.

Пример

Работаем с массивом элементов на js

Один комментарий к “Работаем с массивом элементов на js

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

90% сайтов рунета содержат уязвимости и могут быть взломаны! Проверь свой сайт!