2011-11-23 87 views
0

我有以下一塊jquery。這基本上是一個內容滑塊,當我點擊一個ID爲slick-toggle1的鏈接時,它將滑動匹配內容slickbox1。與slick-toggle2 --> slickbox2 etcetc相同。jquery slidetoggle每個函數(打開/關閉)

$('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)。

回答

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; 
    }); 
}); 
+0

這個工作完全三江源 – user966834

+0

確定只是爲了增加這是我如何使它如此,如果我點擊一個打開的元素,它會關閉它而不是重新打開它? – user966834

0

添加hidable類,你要隱藏的每一個環節,如<a class="clickdown hidable">然後點擊功能,做$(".hidable").hide();

0

添加到#slickbox的父母打電話(讓我們稱之爲它slick_parent)和slideUp所有孩子的div,然後了slideDown所需的文件夾:

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