我在问一个基本问题:为什么此警报返回未定义?
的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
显式传播上下文。