在javascript中处理多个事件侦听器的正确方法
在我的网站上,我有一个动态增长的列表(来自数据库),列表中的每一项都附有按钮。该按钮指向相同的javascript函数,但列表中的每个元素都有不同的id,在函数运行时需要将其包含在函数中 我目前正在html中使用在javascript中处理多个事件侦听器的正确方法,javascript,performance,Javascript,Performance,在我的网站上,我有一个动态增长的列表(来自数据库),列表中的每一项都附有按钮。该按钮指向相同的javascript函数,但列表中的每个元素都有不同的id,在函数运行时需要将其包含在函数中 我目前正在html中使用onclick,可以通过函数的参数传递id,因为我使用模板文本来呈现列表 有什么方法可以通过事件侦听器实现这一点吗 我目前拥有的一个例子是: onclick="theFunction('id')" 列表中的每一项都会发生变化,因此列表可能如下所示 名称1 名称2 名称3 改用事件委
onclick
,可以通过函数的参数传递id,因为我使用模板文本来呈现列表
有什么方法可以通过事件侦听器实现这一点吗
我目前拥有的一个例子是:
onclick="theFunction('id')"
列表中的每一项都会发生变化,因此列表可能如下所示
名称1
名称2
名称3
改用事件委派:将一个侦听器连接到
,然后单击,检查单击的元素是否为
。如果是这样,请检查
的属性,以确定调用函数的参数。例如:
const theFunction=console.log;
document.querySelector('ul')。addEventListener('click',(e)=>{
如果(!e.target.matches('li')){
返回;
}
const param='id'+e.target.dataset.param;
函数(参数);
});代码>
名称1
名称2
名称3
在事件监听器中,这个
是您单击的元素,您可以使用这个.id
来获取其id。@Barmar如果我有很多这样的列表,每个列表都指向不同的函数,那么最好的方法是什么?我以为您说过元素有id。单击此按钮是否应该是其他元素的id?@CertainPerformance否,它不是。我将编辑这个问题。很抱歉