我正在使用大量图像链接进行此页面,当鼠标悬停在它们上方时会发生变化。我有一个改变图像的功能:
function hoverImg(element) {
if (element.src.indexOf("_hover.png") == -1) {
element.src = element.src.replace(".png","_hover.png");
} else {
element.src = element.src.replace("_hover.png",".png");
}
}
但是,我必须将“this”作为每个元素的每个onmouseover和onmouseout事件的函数参数。有没有办法只知道什么元素称为函数?功能复制不是一种选择,因为正如我所说,每页可能会有数百个这样的小图像,并且最终会从数据库数据中生成页面。每次添加“this”似乎都是多余的......
答案 0 :(得分:2)
两个选项(以onclick为例):
来自html:onclick="javascript:hoverImg(this)"
或来自代码:x.onclick = hoverImg
(this
现在在回调中设置好了,因为它后来被“调用”x中的对象。)
还有一些“行为”JavaScript库(甚至是jQuery - 甚至可能是jQuery.live)可以帮助你获得你想要的东西。
答案 1 :(得分:2)
在您的函数中尝试window.event.srcElement
。这假定它是直接从事件处理程序调用的。