清除所有开放的div

时间:2014-01-04 01:26:05

标签: javascript jquery html css

我有一个脚本通过onclick =“toogle_visibility(id)

打开div

事件,但是当我想要关闭打开和打开的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&ouml;ljer</a>
<a href="#social" onclick="toggle_visibility('Bokmarken')">Bokm&auml;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链接中的这些链接不是出于商业目的。

2 个答案:

答案 0 :(得分:1)

您可以使用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,如下所示:

$('#<id-of-that-control>').toggle();

现在,您可以根据需要在按钮或div的onclick事件处理程序中调用它。

它的外观如下:

<强> 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&ouml;ljer</a>
<a href="#social" onclick="toggle_visibility('Bokmarken')">Bokm&auml;rken</a>
</div>

<强>更新: 正如Brodie所指出的,看起来你可能总是在研究由Niet the Dark Absol提供的解决方案。因为他为您提供了纯粹的JS实现。我的解决方案将让您深入了解如何使用像JQuery这样的库以及它的切换API。 Jquery提供了广泛的内置功能,可帮助您快速完成任务。我的代码片段为您提供的是使用api即切换,使用时将与隐藏和显示行为相同。

答案 1 :(得分:0)

基本上,您需要关闭所有DIV,并切换当前的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';
    }
}