gpt4 book ai didi

javascript - jQuery Accordion 面板无法关闭

转载 作者:行者123 更新时间:2023-11-28 00:34:54 24 4
gpt4 key购买 nike

我是 jquery 新手,我有以下代码可以从 div 创建 Accordion 样式面板。该代码运行良好,但是,如果我单击已打开的面板,它会关闭该面板,然后立即重新打开它。这仅适用于已经处于事件状态的面板。如果我点击另一个,它就可以正常工作。

$(document).ready(function() {

$('.accordion-section-title').addClass('active');
// Open up the hidden content panel
$('.accordion ' + '#accordion-1').slideDown(300).addClass('open');

function close_accordion_section() {
$('.accordion .accordion-section-title').removeClass('active');
$('.accordion .accordion-section-content').slideUp(300).removeClass('open');

}

$('.accordion-section-title').click(function(e) {
// Grab current anchor value
var currentAttrValue = $(this).attr('href');

if($(e.target).is('.active')) {
close_accordion_section();

}else {
close_accordion_section();

// Add active class to section title
$(this).addClass('active');
// Open up the hidden content panel
$('.accordion ' + currentAttrValue).slideDown(300).addClass('open');
}

e.preventDefault();
});


});

我附加了一个js fiddle ,看起来每当我将标题包装在任何标签中时都会发生问题,如果它只是空白文本,它工作正常。

https://jsfiddle.net/russ1337/ynfs4zw3/

最佳答案

根据你的 fiddle ,我发现了问题。

请参阅更新的 fiddle :

https://jsfiddle.net/ynfs4zw3/2/

问题是以下代码:

if($(e.target).is('.active')) {
close_accordion_section();
}else {
...
}

您的 if 语句表示,如果 e.target 处于事件状态,但如果您直接单击文本,则目标位于 .accordion-section-title div 内。其中没有 .active 类。

关于javascript - jQuery Accordion 面板无法关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609306/

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