Аккордеон не закрывается при щелчке мышью
Я сделал аккордеон, и он прекрасно работает, но когда он скользит вниз, и когда мы нажимаем на него, чтобы скользить вверх, он не идет вверх в сторону закрытия. Ниже мой код, пожалуйста, скажите, как поступить?
(function($) {
var allPanels = $('.accordion > dd').hide();
$('.accordion > dt > a').click(function() {
allPanels.slideUp();
$(this).parent().next().slideDown();
return false;
});
})(jQuery);
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);
Я думаю, что это проблема, которую вы скользите скрытые элементы
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);