图像标记OnMouseOver未触发

时间:2012-02-17 22:17:44

标签: javascript

我有非常简单的代码,我不确定为什么当鼠标悬停在图像上时不会触发Foo函数:

here <img id="sss" alt="some image" onmouseover="Foo(this);" src="https://www.google.com/intl/en_com/images/srpr/logo3w.png" width="16" height="16"   />

<div onmouseover="Foo(this);"> 
    THIS IS DIV
</div>

function Foo(obj) 
{
    alert('s');
}

更新1:

实际发生的是我动态创建图像元素然后将其添加到页面中。 Foo函数已经在JS文件中,但它永远不会被调用。

3 个答案:

答案 0 :(得分:2)

您当前的代码是正确的,如this fiddle所示。我猜你的问题是Foo在你的页面上不是全局的。


此外,您可以使用this

call作为参数传递给您的函数,而不是将其设置为函数内的
onmouseover="Foo.call(this);"

function Foo()  {
    alert(this.src); //this is the img you just mouse-overed 
}

最后,请考虑将Foo更改为foo,因为以大写字母开头的函数通常表示JavaScript中的构造函数。

答案 1 :(得分:1)

如果这是您的实际代码,那么唯一的问题是您需要将JavaScript包装在<script>中:

<script>
function Foo(obj) {
    alert('s');
}
</script>​

观看演示:

答案 2 :(得分:1)

编辑:只要您在<head>

中包含脚本,代码就没有问题

试一试:jsfiddle