Javascript 手风琴-打开另一个项目时关闭一个项目
我想在另一个项目打开时自动关闭一个项目,因此在任何时候只有一个项目打开 HTMLJavascript 手风琴-打开另一个项目时关闭一个项目,javascript,html,onsen-ui,onsen-ui2,Javascript,Html,Onsen Ui,Onsen Ui2,我想在另一个项目打开时自动关闭一个项目,因此在任何时候只有一个项目打开 HTML <ons-list-item tappable class="accordion" onclick="fn.toggle(this)">List 1</ons-list-item> <div class="panel"> <ons-list-item tappable>Item 1</ons-list-item> <ons-lis
<ons-list-item tappable class="accordion" onclick="fn.toggle(this)">List 1</ons-list-item>
<div class="panel">
<ons-list-item tappable>Item 1</ons-list-item>
<ons-list-item tappable>Item 2</ons-list-item>
</div>
答案是:
window.fn = {};
window.fn.toggle = function(el) {
var elems = document.querySelectorAll(".accordion.active");
[].forEach.call(elems, function(els) {
if (el != els) {
els.classList.toggle("active");
els.nextElementSibling.classList.toggle("show");
}
});
el.classList.toggle("active");
el.nextElementSibling.classList.toggle("show");
}
我不确定是否只使用JavaScript是一种要求,如果不是的话,看看快速而肮脏的方法是再次单击关闭所有面板,然后只打开单击的面板。不会影响已经关闭的面板。下面是我在互联网站上找到的一个快速示例,看看是否可以在其中找到答案。
window.fn = {};
window.fn.toggle = function(el) {
var elems = document.querySelectorAll(".accordion.active");
[].forEach.call(elems, function(els) {
if (el != els) {
els.classList.toggle("active");
els.nextElementSibling.classList.toggle("show");
}
});
el.classList.toggle("active");
el.nextElementSibling.classList.toggle("show");
}