2

我已經制作了手風琴及其工作正常,但是當它滑下來,當我們點擊它向上滑動時,它不會向上朝向關閉位置。以下是我的代碼,請告訴我如何繼續?手風琴沒有關閉鼠標點擊

(function($) { 

    var allPanels = $('.accordion > dd').hide(); 

    $('.accordion > dt > a').click(function() { 
     allPanels.slideUp(); 
     $(this).parent().next().slideDown(); 
     return false; 

    }); 

})(jQuery); 
+0

[ **谷歌搜索代碼片段**](http:// css-tric ks.com/snippets/jquery/simple-jquery-accordion/),該教程有[** jsFiddle Demo **](http://jsfiddle.net/chriscoyier/VPfJ5/3/)。正如OP所述,它不會再次回滾。 – arttronics

回答

1

我覺得這是你向上滑動隱藏要素問題

var allPanels = $('.accordion > dd').hide(); 

代替試試這個:

(function($) { 
    var allPanels = $('.accordion > dd').hide(); 
    $('.accordion > dt > a').toggle(function() { 
     allPanels.slideUp(); 
     $(this).parent().next().slideDown(); 
     return false; 
    },function() { 
     $(this).parent().next().slideUp(); 
     return false; 
    }); 
})(jQuery); 
+0

它不會改變他的代碼的行爲。你只選擇了兩次相同的元素。 – undefined

+0

它不工作..任何其他建議請... –

+0

只是更新了答案。使用**切換**而不是**在這種情況下點擊**。嘗試看看這是否有幫助。 – Jai

2

試試這個:http://jsfiddle.net/DDUQ5/1/

(function($) { 

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    $this = $(this); 
    $target = $this.parent().next(); 
    allPanels.removeClass('active').slideUp(); 
    if($target.is(':hidden')){ 
    allPanels.removeClass('active').slideUp(); 
    $target.addClass('active').slideDown(); 
    } 

return false; 
}); 

})(jQuery);​ 
+1

** + 1 **優秀的答案,但最好是,如果他們都'慢',或者如果這只是沒有使用。換句話說,所有的動畫都在同一時間。這樣,當一個標籤關閉時,另一個標籤以相同的速度打開。 – arttronics

+1

@arttronics:尊重你的建議..回答更新... – Anujith

+0

感謝人.. !!!我沒有語言謝謝你...我的問題解決..愛你... –