【发布时间】:2020-06-21 09:54:57
【问题描述】:
想知道是否有人可以帮助我了解如何在鼠标悬停事件中针对元素的 ID 值进行测试。我想我必须使用“这个”。
我得到的 ID 值是“未定义”
function mouseOver() {
var e = $(this).attr("ID"); //need help with this bit
if (e == ("row2012")) {
alert(e)
} else {
alert(e);
}
}
<table>
<tr data-ng-repeat="x in Interruptions">
<td id=row{{x.year}} onmouseover="mouseOver()" onmouseout="mouseOut()">
{{x.year}}
</td>
<td>{{x.totalEvents}}</td>
<td>{{x.customers}}</td>
<td>{{x.avgDuration}}</td>
</table>
【问题讨论】:
-
您的
mouseOver函数将接收一个事件对象。鼠标悬停的元素是event.target。所以,使用 vanilla js,你可以做const id = event.target.getAttribute('id'); -
@JeremyHarris 在使用内联
onX属性时不正确,就像 OP 一样。他可以将事件传递进去,甚至可以传递 id 属性值本身。不过,更好的方法是使用不显眼的事件处理程序。 -
我想补充一下@RoryMcCrossan 所说的话,因为@JeremyHarris 的评论收到了很多错误的赞成票。元素的
onmouseover属性 和onmouseover属性 之间有一个重要的区别。属性由 HTML 设置,属性由 JavaScript 设置。而且他们的行为不同。 属性 由浏览器评估为 JavaScript 语句。它的函数不接收事件对象。另一方面,property 被评估为一个事件侦听器函数,第一个参数是事件。
标签: javascript jquery html angularjs