0
假设我只需单击一次即可打开手风琴选项卡,并且想要通过第二次单击将其关闭。如何隐藏第二次点击的手风琴选项卡
这是JS/jQuery的我到目前为止有:
var APP = window.APP = window.APP || {};
APP.accordion = (function() {
var $accordionHeader = $('.accordion__header');
var $accordionContent = $('.accordion__content');
var showAccordionContent = function(e) {
var $t = $(this);
$accordionHeader.removeClass('accordion__header--active');
$t.addClass('accordion__header--active');
$accordionContent.removeClass('accordion__content--expanded');
$t.next().addClass('accordion__content--expanded');
$('html, body').animate({
scrollTop: $t.offset().top - 60
}, 500);
e.preventDefault();
};
var bindEventsToUI = function() {
$accordionHeader.on('click', showAccordionContent);
};
var init = function() {
bindEventsToUI();
};
return {
init: init
};
}());
HTML:
<div class="accordion__tab">
<a href="#" class="accordion__header accordion__header--active">
Setting alerts
<span class="accordion__arrow"></span>
</a>
<div class="accordion__content">
<p>
{{!-- things --}}
</p>
<ul class="cf">
<li>
{{!-- more things --}}
</li>
</ul>
</div>
</div>
<div class="accordion__tab">
<a href="#" class="accordion__header">
Setting alerts
<span class="accordion__arrow"></span>
</a>
<div class="accordion__content">
<p>
{{!-- things --}}
</p>
<ul class="cf">
<li>
{{!-- more things --}}
</li>
</ul>
</div>
</div>
建议?
只需检查该选项卡是否具有“.accordion__content - expanded”附加类。如果是这样,请删除该类和“返回”。另外,在我看来,你的一个类,无论是'active'还是'expanded'都应该做同样的事情,你可以摆脱一个,IMO。活跃应该意味着扩大 –
@RobScott都有不同的目的。展开的是一个元素,另一个元素是活动的。检查html,以便看到我说的内容。 – NietzscheProgrammer
我猜这里缺少的是调用init函数吗? – Samarth