У меня есть скрипт, который открывает div, делая onclick = "toogle_visibility (id)
но как это сделать, когда я хочу закрыть div, который открыт и открыт
новый div?
Javascript/JQuery:
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
HTML:
<div class="navBar">
<a href="#social" onclick="toggle_visibility('Social')">Social</a>
<a href="#social" onclick="toggle_visibility('Foljer')">Följer</a>
<a href="#social" onclick="toggle_visibility('Bokmarken')">Bokmärken</a>
</div>
<div id="Social">
<a href="http://www.twitter.com/Liam_Rab3">@Liam_Rab3 - TWITTER</a><br>
<a href="http://www.twitter.com/Liam_Rab3">@Liam_Rab3 - INSTAGRAM</a><br>
<a href="http://www.facebook.com/LiamRab3">@LiamRab3- FACEBOOK</a><br>
<a href="http://www.youtube.com/howmuchtimedr">@Liam_Rab3 - YOUTUBE</a><br>
<a href="http://www.flickr.com/Liam_Rab3">@Liam_Rab3 - FLICKR</a><br>
<a href="http://www.thenotallowedguy.tk">@Liam_Rab3 - TUMBLR</a><br>
</div>
<div id="Foljer">
<a href="http://www.instagram.com/sebbestakset">Sebbe Stakset (Kartellen)</a>
</div>
CSS:
a:link {
color:white;
text-decoration:none;
-o-transition:.5s;
-ms-transition:.5s;
-moz-transition:.5s;
-webkit-transition:.5s;
transition:.5s;
}
a:hover {
color:white;
text-decoration:none;
font-size:100%;
}
a:visited {
text-shadow:0px 0px 0px #0066BB;
color:white;
}
#social {
display:none;
}
#Foljer {
display:none;
}
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ!
Эти ссылки в ссылках #social и #bokmarken не предназначены для коммерческих целей.
Вы можете использовать JQuery Toggle
<div id="clickme">
Click here !!!
</div>
<a href="#social" >Social</a>
$( "#clickme" ).click(function() {
$( "#social" ).toggle(); //With no parameters, the .toggle() method simply toggles the visibility of elements:
});
Сначала выберите элемент управления, который вы хотите скрыть/показать, затем используйте этот идентификатор управления следующим образом:
$('#<id-of-that-control>').toggle();
Теперь вы можете вызвать это в обработчике событий onclick кнопки или div по вашему желанию.
Как это может показаться для вас:
JS
function toggle_visibility(id) {
$('#' + id).toggle();
}
HTML
<div class="navBar">
<a href="#social" onclick="toggle_visibility('Social')">Social</a>
<a href="#social" onclick="toggle_visibility('Foljer')">Följer</a>
<a href="#social" onclick="toggle_visibility('Bokmarken')">Bokmärken</a>
</div>
Обновление: как указал Броди, казалось бы, вы всегда можете заглянуть в решение, предоставленное Нитом Темным Абсолютом. Поскольку он предоставляет вам чистую реализацию JS. Мое решение даст вам представление об использовании библиотеки JQuery и API для переключения. JQuery предоставляет широкий спектр встроенных функций, которые помогут вам быстро сделать это. В моей части кода вы используете утилиту api ie toggle, которая при использовании будет такой же, как поведение hide и show.
В принципе, вам нужно закрыть все DIV и переключить текущий.
Попробуй это:
var ids = ['Social','Foljer','Bokmarken'];
function toggle_visibility(id) {
var l = ids.length, i, e;
for( i=0; i<l; i++) {
e = document.getElementById(ids[i]);
if( id != ids[i])
e.style.display = 'none';
else if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
}