Javascript 如何针对鼠标悬停事件上的元素id值进行测试?
不知是否有人能帮助我理解如何在鼠标悬停事件中根据元素的ID值进行测试。我想我必须用“这个” 我为ID获取的值为“未定义”Javascript 如何针对鼠标悬停事件上的元素id值进行测试?,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,不知是否有人能帮助我理解如何在鼠标悬停事件中根据元素的ID值进行测试。我想我必须用“这个” 我为ID获取的值为“未定义” 函数mouseOver(){ var e=$(this.attr(“ID”);//需要此位的帮助吗 如果(e==(“第2012行”)){ 警报(e) }否则{ 警报(e); } } {{x.year} {{x.totalEvents}} {{x.customers}} {x.avgDuration} 使用ng mouseenter和ng mouseleave,并将变量x传
函数mouseOver(){
var e=$(this.attr(“ID”);//需要此位的帮助吗
如果(e==(“第2012行”)){
警报(e)
}否则{
警报(e);
}
}
{{x.year}
{{x.totalEvents}}
{{x.customers}}
{x.avgDuration}
使用ng mouseenter
和ng mouseleave
,并将变量x
传递给两个:
<td id=row{{x.year}} ng-mouseenter ="mouseOver(x)" ng-mouseleave="mouseOut(x)">{{x.year}}</td>
使用
ng mouseenter
和ng mouseleave
,并将变量x
传递给两个:
<td id=row{{x.year}} ng-mouseenter ="mouseOver(x)" ng-mouseleave="mouseOut(x)">{{x.year}}</td>
您可以通过在
onmouseover
内部传递this
和onmouseout
函数直接传递当前dom元素,如:
<td id=row{{x.year}} onmouseover="mouseOver(this)" onmouseout="mouseOut(this)">{{x.year}}</td>
您可以通过在
onmouseover
内部传递this
和onmouseout
函数直接传递当前dom元素,如:
<td id=row{{x.year}} onmouseover="mouseOver(this)" onmouseout="mouseOut(this)">{{x.year}}</td>
您只需要使用以下信息 在HTML中,将其传递到函数mouseOver(this)中
2019
现在在函数中使用以下命令
功能鼠标盖(ele){
var eleId=$(ele).attr(“Id”);//需要此位的帮助吗
如果(eleId==“yourid”){
警报(eleId)
}否则{
警报(eleId);
}
}
您只需要使用以下信息
在HTML中,将其传递到函数mouseOver(this)中
2019
现在在函数中使用以下命令
功能鼠标盖(ele){
var eleId=$(ele).attr(“Id”);//需要此位的帮助吗
如果(eleId==“yourid”){
警报(eleId)
}否则{
警报(eleId);
}
}
使用ng鼠标*
指令
对于AngularJS框架,应该避免使用onmouseover
属性。而是使用ng mouseover
指令。它与AngularJS框架集成,并在AngularJS执行上下文中计算表达式。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等
有关详细信息,请参阅
- AngularJS没有
指令ng mouseout
ng鼠标盖
带有ng repeat
特殊变量
ng repeat
指令使用该指令设置的特殊变量创建子作用域。其中之一是$index
<div ng-repeat="x in arr">
<p ng-mouseover="mouseOver($index)>{{x.year}}</p>
</div>
有关详细信息,请参阅
ng鼠标盖
带有$event
类似于ngMouseover
和ngFocus
的指令在该表达式的范围内公开$event
对象。该对象是存在jQuery时的实例或类似的jqLite
对象
益智
有关详细信息,请参阅
ng鼠标*
指令
对于AngularJS框架,应该避免使用onmouseover
属性。而是使用ng mouseover
指令。它与AngularJS框架集成,并在AngularJS执行上下文中计算表达式。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等
有关详细信息,请参阅
- AngularJS没有
指令ng mouseout
ng鼠标盖
带有ng repeat
特殊变量
ng repeat
指令使用该指令设置的特殊变量创建子作用域。其中之一是$index
<div ng-repeat="x in arr">
<p ng-mouseover="mouseOver($index)>{{x.year}}</p>
</div>
有关详细信息,请参阅
ng鼠标盖
带有$event
类似于ngMouseover
和ngFocus
的指令在该表达式的范围内公开$event
对象。该对象是存在jQuery时的实例或类似的jqLite
对象
益智
有关详细信息,请参阅
mouseOver
函数将接收一个事件对象。鼠标悬停的元素是event.target
。因此,使用vanilla js,您只需执行const id=event.target.getAttribute('id')
@JeremyHarris这在使用内联onX
属性时是不正确的,就像OP一样。他可以传入事件,甚至可以传入id属性值本身。不过,更好的方法是使用不引人注目的事件处理程序。我想补充一下@Rorymcrossan所说的,因为@JeremyHarris的评论收到了太多错误的投票。元素的onmouseover
属性和onmouseover
属性之间有一个重要的区别。属性由HTML设置,属性由JavaScript设置。他们的行为也不同。浏览器将该属性作为JavaScript语句进行计算。它的函数不接收事件对象。另一方面,属性作为事件侦听器函数进行计算,第一个参数是事件。您的mouseOver
函数将接收事件对象。鼠标悬停的元素是event.target
。因此,使用vanilla js,您只需执行const id=event.target.getAttribute('id')
@JeremyHarris这在使用内联onX
属性时是不正确的,就像OP一样。他可以传入事件,甚至可以传入id属性值本身。不过,更好的方法是使用不引人注目的事件处理程序。我想补充一下@Rorymcrossan所说的,因为@JeremyHarris的评论收到了太多错误的投票。这两者之间有一个重要的区别