首页 > 解决方案 > 如何在不创建单独 ID 的情况下将一个功能用于多个项目?

问题描述

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

例子:

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

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

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

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

这可能吗?

标签: javascript

解决方案


如果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>


推荐阅读