【发布时间】:2015-06-15 20:05:13
【问题描述】:
我正在做一个小型练习程序,其中连续有 3 个白框。我的目标是(使用 Javascript)当鼠标悬停在盒子上时任何盒子从白色变为红色,然后在鼠标离开盒子时变为黄色。下面的代码适用于初始框,但不适用于其他两个。当我将鼠标放在其他框上时,它不会改变它们,但会改变初始框的颜色。我看过类似的问题,但其中大多数都涉及我没有使用的 jquery。我已经做了一些研究,可能的解决方案可能涉及使用 addEventListener 或使用“this”。我不想给按钮 id 赋予不同的名称并基于它们编写额外的程序——那将是低效的。我知道必须有更有效的方法。任何建议表示赞赏。
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Whiteboxes 5</title>
<script type="text/javascript">
function changeColorOnMouseOver()
{
var control=document.getElementById("btn");
control.style.background='red';
}
function changeColorOnMouseOut()
{
var control=document.getElementById("btn");
control.style.background='yellow';
}
</script>
<link rel="stylesheet" href="css/app5.css">
</head>
<body>
<input type="button" value="" id="btn"
onmouseover="changeColorOnMouseOver()"
onmouseout="changeColorOnMouseOut()"/>
<input type="button" value="" id="btn"
onmouseover="changeColorOnMouseOver()"
onmouseout="changeColorOnMouseOut()"/>
<input type="button" value="" id="btn"
onmouseover="changeColorOnMouseOver()"
onmouseout="changeColorOnMouseOut()"/>
</body>
</html>
【问题讨论】:
-
你不能有多个元素具有相同的
id。
标签: javascript html button event-handling elements