Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 - Fatal编程技术网

Javascript 向按钮添加侦听器以执行函数

Javascript 向按钮添加侦听器以执行函数,javascript,Javascript,我在不同的按钮上有一堆不同的ID,点击后,执行相同的逻辑。这就是为什么我在每个侦听器中添加了侦听器,所以单击后,ClearSelectAll函数将以相应的clearSelectArr[I]作为输入执行 目前,我的错误是: 未捕获类型错误:未定义不是函数 所有按钮都有一个类=clearSelect 我的代码: var clearSelectArr = [ "selectAllXP", "selectAll7", "selectAll8", "sel

我在不同的按钮上有一堆不同的ID,点击后,执行相同的逻辑。这就是为什么我在每个侦听器中添加了侦听器,所以单击后,ClearSelectAll函数将以相应的clearSelectArr[I]作为输入执行

目前,我的错误是:

未捕获类型错误:未定义不是函数

所有按钮都有一个类=clearSelect

我的代码:

var clearSelectArr = [  "selectAllXP", "selectAll7", "selectAll8",
                        "selectAll8_1", "selectAll10_6", "selectAll10_8", 
                        "selectAll10_9", "selectAllios", "selectAll4_4", 
                        "selectAll4_3", "selectAll4_2", "selectAll4_1", 
                        "selectAll4_0", "clearAllXP", "clearAll7", 
                        "clearAll8", "clearAll8_1", "clearAll10_6", 
                        "clearAll10_8", "clearAll10_9", "clearAllios",
                        "clearAll4_4", "clearAll4_3", "clearAll4_2", 
                        "clearAll4_1", "clearAll4_0"];

var buttons = document.getElementsByClassName("clearSelect");

for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    button.addEventListeners("click", clearOrSelectAll(button.id));
}
每个按钮都有一个与其关联的id。这些ID与ClearElectrarr中的ID相同。我希望能够添加与按钮具有相同id的侦听器函数。

它是addEventListener,而不是addEventListeners注意s

只要有foobar,就会首先调用bar,并将其返回值传递给foo。因此,在您的情况下,您首先调用clearOrSelectAll并将返回值传递给addEventListener

然而,addEventListener需要一个函数作为参数,如果clearOrSelectAll不返回函数,这将不起作用


并通过它访问处理程序绑定到的元素。

该方法称为addEventListener,而不是addEventListeners。Felix可能解决了您的问题,但另一方面需要注意:ClearElectrar[ClearElectrar.indexOfbutton.id]与button.id相同。。。
button.addEventListener("click", clearOrSelectAll);