Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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,我正在尝试用HTML和JS构建记分板,我想知道是否可以为不同的按钮在一个函数中添加2或3个事件侦听器 我的第一个想法是使用switch语句,如: document.getElementById(“1”).addEventListener(“单击”,得分); document.getElementById(“2”).addEventListener(“单击”,得分); document.getElementById(“3”).addEventListener(“单击”,得分); 功能评分(){

我正在尝试用HTML和JS构建记分板,我想知道是否可以为不同的按钮在一个函数中添加2或3个事件侦听器

我的第一个想法是使用switch语句,如:

document.getElementById(“1”).addEventListener(“单击”,得分);
document.getElementById(“2”).addEventListener(“单击”,得分);
document.getElementById(“3”).addEventListener(“单击”,得分);
功能评分(){
开关(按钮id){
案例“1”:
...
案例“2”:
...
...
}

}
您可能希望将事件委派给父容器(事件委派)。可以通过向元素添加数据属性来检索信息

功能评分(evt){
var index=evt.target.getAttribute('data-index');
如果(索引){
log('您单击:'+索引);
}
}
document.getElementsByClassName('container')[0].addEventListener(“单击”,得分)
.container div{
宽度:100px;
边框:1px实心#000;
背景:浅蓝色;
保证金:5px;
文本对齐:居中;
光标:指针;
}

1.
2.
3.
试试这个:

html

<input type="button" id="b1" onclick="score(this.id)">
<input type="button" id="b2" onclick="score(this.id)">
<input type="button" id="b3" onclick="score(this.id)">

这应该是可行的。

您需要在评分函数中定义
按钮。例如,它可以是
functionscore(evt){let button=evt.target;}
或者甚至是
this
。它现在可以工作了,谢谢!
function score(x)
{
  //your code
}