我在问一个基本问题:为什么此警报返回未定义?

的HTML

<div id="spettacoli_div">
<img id="spettacoli" src="grafica/spettacoli.png" onMouseOver="spettacoliIn()">
</div>


JS

function spettacoliIn(){
var comparendo = $(this).attr('id');
alert(comparendo);


}

最佳答案

因为调用该函数时,上下文(this)等于全局对象(window),而window没有ID。

代替这个,做

<img id="spettacoli" src="..." onMouseOver="spettacoliIn.call(this)">


您用作mouseover事件的内联处理程序的代码在正确的上下文中运行(this是图像元素),但这不会自动转移到处理程序本身进行的任何调用(即调用spettacoliIn)。您需要使用call显式传播上下文。

07-25 21:41
查看更多