2011-10-06 13 views
0

所以我試圖用面板打一個類似於效果的手風琴效果,這個動作是通過點擊要打開面板頂部的面板來啓動的。這一切都很好,但我遇到的問題是選擇其他打開的面板,並在打開新面板時關閉它。新面板也會關閉!jquery在選擇div的建議

$(document).ready(function(){ 
    $('.content_accrd').css({"height":"0px"}); 
$('.paneltop').click(function() { 
    $(this).css({"background-position":"0px -21px"}) 
    .siblings().animate({"height":"100px"}, 200) 
    .parent().children(".content_accrd").animate({"height":"0px"}); 
}) 
}) 
+1

FWIW,jQuery UI的已經有一個摺疊效果:http://docs.jquery.com/UI/Accordion – JMax

+0

我想通過這種方法 –

回答

0

試試這個:

$(document).ready(function(){ 
    $('.content_accrd').css({"height":"0px"}); 
    $('.paneltop').click(function() { 
     $(this).css({"background-position":"0px -21px"}) 
      .parent().children(".content_accrd").animate({"height":"0px"}) 
      .siblings().animate({"height":"100px"}, 200); 
    }) 
}) 

關閉其他打開的面板,然後再打開被點擊的一個。

+0

的代碼不能正常工作,使我自己,沒有div現在關閉 –

+0

你能發佈你的html嗎? – malificent

+1

試試這jsfiddle http://jsfiddle.net/gaBPp/2/ (只需根據您的腳本代碼猜測您的html) – malificent

0

我猜想排除你當前點擊的DIV也可以。但這並不重要。

$(document).ready(function(){ 
$('.content_accrd').css({"height":"0px"}); 
$('.paneltop').click(function() { 
    $(this).css({"background-position":"0px -21px"}) 
    .siblings().animate({"height":"100px"}, 200).not($(this)) 
    .parent().children(".content_accrd").animate({"height":"0px"}); 
    }) 
}) 

我不知道你是否已經看到這篇文章: http://www.artzstudio.com/2009/04/jquery-performance-rules/ 它提供了一些有用的性能提示這讓我在我的學習過程。

此外,您絕對應該嘗試自己製作插件,這也是深入瞭解jQuery的一大步。

http://stefangabos.ro/jquery/jquery-plugin-boilerplate-oop/

+0

看起來像它可能工作,但也有同樣的問題,感謝您的幫助,雖然 –