我的手风琴不能正常工作。
在您第一次单击时,内容将显示。 。 。
否则,如果您第二次点击并在确实出现之后。
任何帮助都会很棒,
这是我的小提琴:
https://jsfiddle.net/ugddnof4/
所有的内容都在那里。
以下是我的js:
(function($){ $('。accordion> li:eq(0)a')。addClass('active')。next()。slideDown();
$('.accordion a').click(function(j) {
var dropDown = $(this).closest('li').find('ul.accordion-content li, p, ul.accordion-content');
$(this).closest('.accordion').find('ul.accordion-content li, p, ul.accordion-content').not(dropDown).slideUp();
if ($(this).hasClass('active')) {
$(this).removeClass('active');
} else {
$(this).closest('.accordion').find('a.active').removeClass('active');
$(this).addClass('active');
}
dropDown.stop(false, true).slideToggle();
j.preventDefault();
});
})(jQuery);
非常感谢您的所有时间!
答案 0 :(得分:1)
这似乎有效
https://jsfiddle.net/9erfLokh/1/
新js:
(function($) {
$('.accordion > li:eq(0) a').addClass('active').next().slideDown();
$('.accordion a').click(function(j) {
var dropDown = $(this).closest('li').find('ul.accordion-content');
if ($(this).hasClass('active')) {
$(this).removeClass('active');
} else {
$(this).closest('.accordion').find('a.active').closest('li').find('ul.accordion-content').slideUp();
$(this).closest('.accordion').find('a.active').removeClass('active');
$(this).addClass('active');
}
dropDown.stop(false, true).slideToggle();
j.preventDefault();
});
})(jQuery);
我认为你的问题主要是dropDown
返回了一整套dom对象,而你在所有这些对象上运行slideToggle
。如果有一个活动版本,此版本将仅关闭一个块,并且将始终切换所单击的版块,但要注意仅在单个元素上运行slideToggle
。