0

将鼠标悬停在图像上时,我想更改图像的来源。

我已经设法为一张图片做到了,通过

<img id="image1" src="image1-grey.png" onmouseover=colorImage(this) />"

和:

function colorImage(x){
document.getElementById("image1").src = x.src.replace("grey", "color");
}

我有十几张图片——都有两个版本,灰色和彩色。

现在我想我可以对所有图像单独重复上述功能,但必须有一种更清洁的方法。

这是我想的,但它不起作用:

<img id="image1" src="image1-grey.png" onmouseover=colorImage(image1) />"

和:

function colorImage(x){
document.getElementById(x).src = this.src.replace("grey", "color");
}

这样,我想,我对所有图像只有一个功能。但不是。为什么不?

提前非常感谢!

4

2 回答 2

1

由于您将图像的引用作为参数传递,因此您不需要使用 document.getElementById ...您已经拥有它!

function colorImage(x){
  x.src = x.src.replace("grey", "color");
}

您可以继续使用第一种方式调用该函数:

<img id="image1" src="image1-grey.png" onmouseover=colorImage(this) />
于 2013-02-26T01:34:10.193 回答
0

看起来您的问题出image1在下面的行中

onmouseover=colorImage(image1)

它需要像您传递字符串一样用引号引起来(如下所示)

onmouseover=colorImage('image1')

您现在传递它的方式是发送一个名为image1(将是undefined)的 javascript 变量,而不是您想要的字符串名称"image1"

于 2013-02-26T01:36:57.840 回答