按ID显示/隐藏/切换多个Div?

时间:2012-06-27 10:13:19

标签: jquery toggle slidetoggle

stackoverflow的优秀人员帮助我解决了这个问题,现在我只需要在终点线上进行一点推动。

我需要一个切换按钮,在点击时向下打开div(向下滑动),然后在点击时关闭,pref也会有一个活动的类。

但是,如果您单击另一个切换按钮,子div打开并关闭上一个,如果它已打开。

所以基本上没有一个开放的div可以同时打开,一次只能打开一个。

我需要通过锚点ID来完成,因为开场div与切换按钮无关(它在页面下方有点)

到目前为止,这不起作用,但所有的HTML都在那里.. http://jsfiddle.net/CkTRa/398/

非常感谢你,如果有人可以提供帮助,搜索高低,我找到的最近的是http://andylangton.co.uk/articles/javascript/jquery-show-hide-multiple-elements/但是当你点击一个新的时,它并没有关闭已经打开的div。

4 个答案:

答案 0 :(得分:4)

<强> DEMO

  $("a").click(function(){
    var myelement = $(this).attr("href")
    $(myelement).slideToggle("slow");
    $(".toggle:visible").not(myelement).hide();

  });

答案 1 :(得分:1)

Here's a jsFiddle根据锚标记中的href获取正确的div:

基本上:

 $( $(this).find("a").attr('href') ).slideToggle("slow");

编辑:

jsFiddle that hides any open ones, not being the current

基本上:

var divToToggle = $( $(this).find("a").attr('href') );
$(".toggle:visible").not(divToToggle).hide();
divToToggle.slideToggle("slow");

答案 2 :(得分:1)

正如其他答案中所提到的,为了使下一个()工作,必须改变布局(见小提琴) 之后,要先关闭所有切换div,您可以使用:

$(".toggle").slideUp("slow");

但是为了防止干扰扩展的div,可以使用not来排除该div:

var div = $(this).next(".toggle");
$(".toggle").not(div).slideUp("slow");
div.slideToggle("slow");

组合小提琴:http://jsfiddle.net/CkTRa/402/

答案 3 :(得分:0)

<h3 class = "trigger" href="#box1">Heading 1</h3>.

优于:

<h3 class = "trigger"><a href="#box1">Heading 1</a></h3>.

当内容滑回时,第二个选项会出现显示问题。