Javascript jQuery accordion的逻辑,一次只能打开一个项目,但单击打开的项目也会关闭
我正在构建一个非常基本的jQuery accordion,我知道UI中有accordion,我不想使用它 我把整个事情都做得很好,但有一个特定的部分我还是停留在逻辑上 一次只能打开一个手风琴项目。因此,当用户单击时,我会关闭所有手风琴,不管单击的是什么,然后打开单击的手风琴 这一切正常,除了我失踪时,当前,打开的项目被单击,它应该关闭,所以没有任何项目是开放的 我无法理解其逻辑,因为当单击当前项时,如果其数据状态为关闭,则当前将其设置为打开,但这似乎不起作用 这是我的手风琴密码:Javascript jQuery accordion的逻辑,一次只能打开一个项目,但单击打开的项目也会关闭,javascript,jquery,Javascript,Jquery,我正在构建一个非常基本的jQuery accordion,我知道UI中有accordion,我不想使用它 我把整个事情都做得很好,但有一个特定的部分我还是停留在逻辑上 一次只能打开一个手风琴项目。因此,当用户单击时,我会关闭所有手风琴,不管单击的是什么,然后打开单击的手风琴 这一切正常,除了我失踪时,当前,打开的项目被单击,它应该关闭,所以没有任何项目是开放的 我无法理解其逻辑,因为当单击当前项时,如果其数据状态为关闭,则当前将其设置为打开,但这似乎不起作用 这是我的手风琴密码: $(docum
$(document).ready(function () {
$('.accordian-item').click(function () {
// close everything first
$(".accordian-text").attr('data-status', 'closed');
$("h3").css('background-image', 'url(arrow-down.png)');
$(".accordian-text").css("height", "0").css('border-bottom', 'none');
console.log('clicked!');
var status = $(this).children(".accordian-text").attr('data-status');
if (status == 'closed') {
// open it
$(this).children(".accordian-text").attr('data-status', 'open');
$(this).children("h3").css('background-image', 'url(arrow-up.png)');
$(this).children(".accordian-text").css("height", "auto").css('border-bottom', '1px solid #c7c5c5');
} else {
// close it
$(this).children(".accordian-text").attr('data-status', 'closed');
$(this).children("h3").css('background-image', 'url(arrow-down.png)');
$(this).children(".accordian-text").css("height", "0").css('border-bottom', 'none');
}
});
});
在检查状态之前,您将关闭打开的面板。移动
var status = $(this).children(".accordian-text").attr('data-status');
函数的顶部,使其获得打开状态,然后if逻辑将转到else