JavaScript手风琴-for循环内部for循环存在问题

JavaScript手风琴-for循环内部for循环存在问题,javascript,html,css,accordion,Javascript,Html,Css,Accordion,我为一个简单的手风琴编写了javascript代码。程序可以运行,但我有一个问题,每次加载页面时,我都必须双击标题(h2标记),然后它工作正常,只需单击一次即可响应。我不知道为什么在页面加载后它不会立即进入第二个for循环 var acc=document.getElementsByClassName(“accordionItemHeading”); var panel=document.getElementsByClassName(“textAccordion”); var i; 对于(i=

我为一个简单的手风琴编写了javascript代码。程序可以运行,但我有一个问题,每次加载页面时,我都必须双击标题(h2标记),然后它工作正常,只需单击一次即可响应。我不知道为什么在页面加载后它不会立即进入第二个for循环

var acc=document.getElementsByClassName(“accordionItemHeading”);
var panel=document.getElementsByClassName(“textAccordion”);
var i;
对于(i=0;i
.text手风琴{
显示:无;
背景颜色:蓝色;
溢出:隐藏;
}

一个

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前

两个

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前


页面加载后不会转到第二个for循环,因为第二个for循环在事件处理程序中。因此,当您实际单击某个对象时,事件处理程序将被调用,
.addEventListener(“click”,()=>{})
因此,当您第一次单击它时,它将进入事件循环,并使用for循环执行回调。

首先,您的面板将
设置为其
显示样式

唯一的问题是
if
条件因此失败

如果在第一个循环开始时(在事件侦听器之前)设置了
display:none
,则该行为就是您期望的行为

var acc=document.getElementsByClassName(“accordionItemHeading”);
var panel=document.getElementsByClassName(“textAccordion”);
var i;
对于(i=0;i
.text手风琴{
显示:无;
背景颜色:蓝色;
溢出:隐藏;
}

一个

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前

两个

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前

一个伟大的先驱者坐在智慧的奥纳雷面前,坐在毛里斯·弗林利亚面前


是的,你说得对,这就是问题所在。谢谢!