Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在forEach()循环中单击特定按钮时触发事件_Javascript_Loops_Animation_Svg_Foreach - Fatal编程技术网

Javascript 在forEach()循环中单击特定按钮时触发事件

Javascript 在forEach()循环中单击特定按钮时触发事件,javascript,loops,animation,svg,foreach,Javascript,Loops,Animation,Svg,Foreach,我目前正在尝试在两个不同的按钮上设置两个不同的事件,但是,这些按钮(h1)位于forEach()循环中。长话短说,它是这样的:当点击一个按钮时,文本将出现在它下面,如果再次点击,文本将消失(到目前为止,这是完美的工作方式)。现在,我决定添加一个带有动画的svg,但为此,我需要针对特定的按钮,因为我需要根据单击的按钮应用不同的CSS 我似乎不知道如何为一个按钮设置事件,因为我创建了一个forEach()循环,从HTML模板中调用按钮和相应的文本 是否有人可以通过查看这些简短的代码片段,帮助我找到一

我目前正在尝试在两个不同的按钮上设置两个不同的事件,但是,这些按钮(h1)位于
forEach()
循环中。长话短说,它是这样的:当点击一个按钮时,文本将出现在它下面,如果再次点击,文本将消失(到目前为止,这是完美的工作方式)。现在,我决定添加一个带有动画的svg,但为此,我需要针对特定的按钮,因为我需要根据单击的按钮应用不同的CSS

我似乎不知道如何为一个按钮设置事件,因为我创建了一个
forEach()
循环,从HTML模板中调用按钮和相应的文本

是否有人可以通过查看这些简短的代码片段,帮助我找到一种方法来整合我所缺少的关于点击svg/动画的内容

NB:下面的JS代码片段当前正在启动我想为您的

tours.forEach((oneTour) => {
    //A bunch of stuff
});
您正在循环
巡更
,在每次迭代中,您可以将当前元素称为
oneTour

所以,如果oneTour有一个tourTitle类,那么

tourCopy.querySelector(".tourTitle").addEventListener("click", function(){
    //A bunch of stuff    
});
您可以这样做:

oneTour.addEventListener("click", function(){
    //A bunch of stuff    
});

请注意,我可能没有完全理解您希望发生的事情。如果是这样的话,我希望进一步澄清这个问题。

如果我理解正确,您希望向不同的元素添加不同的事件,并将它们附加到
forEach
循环中。也许可以尝试以下方法(基本示例):

函数事件1(){
log(“这是第一个按钮”);
}
函数event2(){
log(“这是第二个按钮”);
}
var events=[event1,event2];
tours.forEach((一小时,一小时)=>{
//做点什么
someElement.addEventListener('click',events[i]);
}

我基本上只是在循环外定义事件处理程序,将它们存储在一个列表中,并在值旁边获得
forEach
的索引。然后我使用该索引访问正确的函数。我希望这会有所帮助。(或者我不太理解).

您好,谢谢您的输入!您理解正确,但我需要的是更进一步,在forEach()中触发两个事件循环,每个循环一个,因为我需要给每个循环一个不同的CSS类。@MéganeLondoño我觉得我们非常接近解决方案,但我需要更多关于哪个h1应该发生什么的信息。它可能有一个简单的解决方案,但我们需要首先正确地把握问题。
tourCopy.querySelector(".tourTitle").addEventListener("click", function(){
    //A bunch of stuff    
});
oneTour.addEventListener("click", function(){
    //A bunch of stuff    
});