我正在制作这个页面,其中包含许多图像链接,当鼠标悬停在它们上方时,这些链接会发生变化。我这里有一个更改图像的功能:
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");
}
}
但是,我必须为每个元素的每个 onmouseover 和 onmouseout 事件提供“this”作为函数的参数。有没有办法只知道什么元素称为函数?函数复制不是一种选择,因为正如我所说,每页可能有数百个这样的小图像,并且无论如何这些页面最终都会从数据库数据生成。每次添加“this”似乎非常多余......
最佳答案
两个选项(以 onclick 为例):
来自 html:onclick="javascript:hoverImg(this)"
或来自代码:x.onclick = hideImg
(this
现在可以在回调中设置,因为稍后会“调用”x 中的对象)。
还有一些“行为”JavaScript 库(甚至 jQuery - 也许 jQuery.live 甚至)可以帮助您获得您想要的东西。
关于javascript - 如何知道 JavaScript 中哪个元素调用了函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476054/