gpt4 book ai didi

javascript - jQuery Accordion - 无法关闭当前

转载 作者:行者123 更新时间:2023-11-30 12:53:59 26 4
gpt4 key购买 nike

下面是简单的 jQuery Accordion :

(function ($) {

var allPanels = $('.accordion > dd').hide();

$('.accordion > dt > a').click(function () {
allPanels.slideUp();
$(this).parent().next().slideDown();
return false;
});

})(jQuery);

<dl class="accordion">
<dt><a href="">Panel 1</a></dt>

<dd>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</dd>
<dt><a href="">Panel 2</a></dt>

<dd>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis.</dd>
<dt><a href="">Panel 3</a></dt>

<dd>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus hendrerit. Pellentesque aliquet nibh nec urna. In nisi neque, aliquet vel, dapibus id, mattis vel, nisi. Sed pretium, ligula sollicitudin laoreet viverra, tortor libero sodales leo, eget blandit nunc tortor eu nibh. Nullam mollis. Ut justo. Suspendisse potenti.</dd>
</dl>

问题是当您单击面板 1 时,<dd>将扩展,但如果您再次单击将其关闭(面板 1),<dd>会再次隐藏和消耗。这是错误的,如果用户再次点击面板1应该关闭,那么如何关闭<dd>选项卡是否打开?

JSFiddle:link

最佳答案

问题出在 allPanels.slideUp() 行,您应该从此操作中忽略当前面板

尝试

jQuery(function ($) {

var allPanels = $('.accordion > dd').hide();

$('.accordion > dt > a').click(function () {
var $target = $(this).parent().next().stop(true, true).slideToggle();;
allPanels.not($target).stop(true, true).slideUp();
return false;
});

})

演示:Fiddle

关于javascript - jQuery Accordion - 无法关闭当前 <dt>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19922275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com