【发布时间】:2014-02-07 12:38:03
【问题描述】:
我无法找出手风琴中的错误。单击时箭头图标行为异常。如果你去here,你会看到一些被手风琴隐藏的类别。当您单击一个然后关闭它时,它会正常运行。但是,如果您单击一个,然后在关闭第一个之前单击下面的另一个,您会注意到上面的箭头已返回到“关闭”位置而没有关闭它。
这是组成每个手风琴的 HTML:
<dl class="accordion">
<dt><strong>Accordion Title:</strong> Details</dt>
<dd>Hidden details</dd>
</dl>
箭头的 CSS:
.accordion dt:after {
content: "\f125";
color: #ED4F30;
font-family: "Ionicons";
padding-left: 10px;
}
和
.accordion dt.accordion-active:after {
content: "\f123";
color: #ED4F30;
font-family: "Ionicons";
padding-left: 10px;
}
最后是我用来展开/折叠的 jQuery:
function ($) {
//Hide all panels
var allPanels = $('.accordion > dd').hide();
//Show first panel
//$('.accordion > dd:first-of-type').show();
//Add active class to first panel
//$('.accordion > dt:first-of-type').addClass('accordion-active');
//Handle click function
jQuery('.accordion > dt').on('click', function () {
var $this = $(this) ,
$target = $this.next();
jQuery('.accordion > dt.accordion-active').not($this.toggleClass('accordion-active')).removeClass('accordion-active');
$this.siblings('dd').not($target.addClass('active').slideToggle()).slideUp();
return false;
});
}
任何想法我错过了什么?
【问题讨论】:
-
not() 中带有 toggle() 的长行让这段代码难以理解。
标签: javascript jquery html accordion