我有下一个问题。
手风琴在点击时打开,但当我再次点击它关闭时,它不会。
我的HTML标记:
<div class="title">
<a href="#">Heading</a>
</div>
<div class="content">
<li><p>Content</p></li>
</div>
</section>
我的javascript代码:
(function() {
'use strict';
$('.accordion').on('click', '.title', function(event) {
event.preventDefault();
$(this).siblings('.accordion .active').next().slideUp('normal');
$(this).siblings('.accordion .title').removeClass("active");
if ($(this).next().is(':hidden') === true) {
$(this).next().slideDown('normal');
$(this).addClass("active");
}
});
$('.accordion .content').hide();
$('.accordion .active').next().slideDown('normal');
})();
答案 0 :(得分:0)
您可以使用slideToggle
和toggleClass
并在函数内使用this
来简化代码(这是点击的项目)。
代码:
(function () {
'use strict';
$('.accordion').on('click', '.title', function (event) {
event.preventDefault();
$(this).siblings('.content').slideToggle('normal');
$(this).toggleClass("active");
});
$('.accordion .content').hide();
$('.accordion .active').next().slideDown('normal');
})();
演示:http://jsfiddle.net/IrvinDominin/9MSAC/1
要一次只打开一个元素,您可以先关闭它们。
代码:
(function () {
'use strict';
$('.accordion').on('click', '.title', function (event) {
event.preventDefault();
$('.title').not($(this)).siblings('.content').slideUp('normal');
$('.title').not($(this)).removeClass("active");
$(this).siblings('.content').slideToggle('normal');
$(this).toggleClass("active");
});
$('.accordion .content').hide();
$('.accordion .active').next().slideDown('normal');
})();
答案 1 :(得分:0)
<ul class="faqContainerUL">
<li>
How do I add a device?
<p>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</p>
</li>
<li>
What is device Group and how does it differ from Location?
<p>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</p>
</li>
的Javascript
$.each($('ul.faqContainerUL li'), function (index, elem) {
$(elem).on('click', function () {
$(this).children().slideToggle();
});
});
答案 2 :(得分:0)
感谢Irvin Dominin又名爱德华给出答案。我正在给出更新的答案,作为&#34; user2504339&#34;想点击其他手风琴。
(function () {
'use strict';
$('.accordion').on('click', '.title', function (event) {
event.preventDefault();
if($(this).hasClass('active'))
{ $(this).siblings('.content').slideToggle('normal');
$(this).toggleClass("active");
}
else
{
$('.accordion .content').hide();
$(this).siblings('.content').slideToggle('normal');
$(this).toggleClass("active");
}
});
$('.accordion .content').hide();
$('.accordion .active').next().slideDown('normal');
})();