Jquery Slidetoggle每个功能(打开/关闭)

时间:2011-11-23 08:20:50

标签: jquery slidetoggle toggleclass

我有以下的jquery。这基本上是一个内容滑块,当我点击ID为slick-toggle1的链接时,它会向下滑动匹配的内容slickbox1。与slick-toggle2 --> slickbox2 etcetc相同。

$('a.clickdown').each(function() {
      var $this = $(this);
      var index = $this.attr('id').match(/(\d+)$/, '');
      var number = parseInt(index[1]);
      $this.click(function() {
          $('#slickbox' + number).slideToggle(400);
          $this.toggleClass('opened').blur();
         return false;
     });
}); 

当我点击各个链接时,相应的区域将叠加。但是,我想要达到的目标是:当我点击说slick-toggle2时,它会显示slickbox2但会隐藏其他内容(所以slickbox1& slickbox3)。

4 个答案:

答案 0 :(得分:0)

为要隐藏的每个链接添加hidable课程,例如<a class="clickdown hidable">然后在点击功能中,执行$(".hidable").hide();

答案 1 :(得分:0)

我认为您正在搜索 jquery手风琴http://docs.jquery.com/UI/Accordion。这个jQuery插件自动执行此操作。滑动您单击打开的那个。剩下的就是关闭。

答案 2 :(得分:0)

试试这个,它会找到以slickbox开头的所有元素并将它们滑起来。

$('a.clickdown').each(function() {
    var $this = $(this);
    var index = $this.attr('id').match(/(\d+)$/, '');
    var number = parseInt(index[1]);
    $this.click(function() {
        $('[id^=slickbox]').slideUp(); // This does the magic.
        $('#slickbox' + number).stop(true, true).slideToggle(400);
        $this.toggleClass('opened').blur();
        return false;
    });
});

答案 3 :(得分:0)

#slickbox的父母(让我们称之为slick_parent)和slideUp所有子div添加一个电话,然后向下滑动所需的框:

$this.click(function() {
    $('#slick_parent > div').slideUp();
    $('#slickbox' + number).slideToggle(400);
    $this.toggleClass('opened').blur();
    return false;
});