Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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/0/performance/5.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中处理多个事件侦听器的正确方法_Javascript_Performance - Fatal编程技术网

在javascript中处理多个事件侦听器的正确方法

在javascript中处理多个事件侦听器的正确方法,javascript,performance,Javascript,Performance,在我的网站上,我有一个动态增长的列表(来自数据库),列表中的每一项都附有按钮。该按钮指向相同的javascript函数,但列表中的每个元素都有不同的id,在函数运行时需要将其包含在函数中 我目前正在html中使用onclick,可以通过函数的参数传递id,因为我使用模板文本来呈现列表 有什么方法可以通过事件侦听器实现这一点吗 我目前拥有的一个例子是: onclick="theFunction('id')" 列表中的每一项都会发生变化,因此列表可能如下所示 名称1 名称2 名称3 改用事件委

在我的网站上,我有一个动态增长的列表(来自数据库),列表中的每一项都附有按钮。该按钮指向相同的javascript函数,但列表中的每个元素都有不同的id,在函数运行时需要将其包含在函数中

我目前正在html中使用
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否,它不是。我将编辑这个问题。很抱歉