javascript - 如何在不创建单独的 id 的情况下对多个项目使用一个函数?

标签 javascript

我有一个游戏,其中有气球,每个气球都有一个 onclick 属性,该属性将 id 传递到 JS 函数以更改 css。

示例:

<div id="balloon" class="container" onclick="popBalloon(this.id);"></div>

点击此项将调用下面的函数

function popBalloon(id){
    document.getElementById(id).setAttribute("class","pop");
}

问题是我有多个相同类型的气球,我想要一种方法来确定使用相同属性名称单击的特定气球,而不是为每个气球使用唯一的 ID。

这可能吗?

最佳答案

如果将 event 作为函数参数传递,则可以使用 event.target获取点击的元素

function popBalloon (event) {
    event.target.setAttribute("class", "pop");
}
div {  
  margin-top: 10px;
  height: 30px;
  width: 30px;
  border: 1px solid;
  border-radius: 50%;
}

.container {
  background-color: red;
}

.pop {
  background-color: blue;
}
<div class="container" onclick="popBalloon(event);"></div>
<div class="container" onclick="popBalloon(event);"></div>
<div class="container" onclick="popBalloon(event);"></div>
<div class="container" onclick="popBalloon(event);"></div>
<div class="container" onclick="popBalloon(event);"></div>

关于javascript - 如何在不创建单独的 id 的情况下对多个项目使用一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460640/

相关文章:

javascript - Raphaeljs 子字符串文本属性

javascript - #ifndef 在 javascript 中

javascript - 如何检查我的 json 数组是否缺少对象

javascript - 我的选择过程不匹配?

javascript - 检查是否使用 jquery 检查输入

javascript - 如何让div在滚动时隐藏在固定div后面

javascript - Firebase云函数,获取最后添加的子项

javascript - Alexa 跳过插槽还是以编程方式设置?

javascript - 当我用 "text_field_tag"(ruby on rails) 写入输入时如何使用 onkeyup() 方法

javascript将字符串转换为带括号的int数组