【发布时间】:2013-11-16 00:26:29
【问题描述】:
您可以在标题中看到它是什么。我有四个“div”,其中每个都是一个 p 标签。当我在第一个 div 上使用鼠标时,会更改第一个 div 的 p 标签的“不透明度”。问题是当我在第二个或第三个“div”上继续使用鼠标时,只会从第一个“div”更改标签“p”。它应该改变他们自己的“p”标签。 重要的是,我不能使用 CSS ":hover"。 问题很清楚,就是所有人都有相同的“id”。 我需要一个不会单独枚举所有不同类的 javascript。
对不起我的英语。 我希望你能理解我。 我的脚本:
<div onmouseout="normal();" onmouseover="hover();" >
<p id="something">LOLOL</p>
</div>
<div onmouseout="normal();" onmouseover="hover();" >
<p id="something">LOLOL</p>
</div>
<div onmouseout="normal();" onmouseover="hover();" >
<p id="something">LOLOL</p>
</div>
<div onmouseout="normal();" onmouseover="hover();" >
<p id="something">LOLOL</p>
</div>
Javascript:
function normal() {
var something = document.getElementById('something');
something.style.opacity = "0.5";
}
function hover() {
var something = document.getElementById('something');
something.style.opacity = "1";
CSS:
p {
opacity: 0.5;
color: red;
}
【问题讨论】:
-
一个 id 属性 应该是 unique。此 HTML 无效。您的 JavaScript 末尾似乎还缺少
}并且函数hover和normal甚至不针对同一个 Node。 -
对不起,我已经奉献了自己,我已经改进了。
-
一旦您拥有有效的 HTML,请考虑您希望如何区分第一项和第二项。例如,将
this传递到您的函数调用中,并在函数中使用它。或者,获取一些其他参数,让您知道要定位哪个<p>,并在调用函数时将其作为 参数 传递。
标签: javascript html css onmouseover onmouseout