過去一週我一直在廣泛地研究這個問題,但我無法弄清楚爲什麼這種方法無效。Javascript:getElementsByTag DOM,動態src參考
我試圖使用外部JavaScript文件來拉動html頁面上的所有img標籤,並在用戶將鼠標懸停在圖像上時動態地(通過更改src)換出圖像。當用戶懸停在圖像上時,我可以改變圖像,但是當它改回時,它不會與正確圖像協調(圖像1,2,3,4將全部改變爲圖像5)。
這裏是html。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="JS1.js" type="text/javascript" /></script>
<title>main</title>
</head>
<body>
<div id="divCont">
<img src="images/button1_out.gif" id="button1" /> <br />
<img src="images/button2_out.gif" id="button2" /> <br />
<img src="images/button3_out.gif" id="button3" /> <br />
<img src="images/button4_out.gif" id="button4" /> <br />
<img src="images/button5_out.gif" id="button5" /> <br />
</div>
</body>
</html>
這裏的JavaScript:
window.onload = function()
{
var arrImgs = document.getElementsByTagName("img");
for(var i = 0; i < arrImgs.length; i++) {
var elemImg = arrImgs[i];
//alert(elemImg.id);
elemImg.onmouseover = function() {
//alert(this.src);
//var targetId = this.src;
this.src = "images/" + elemImg.id + "_over.gif";
//alert(this.src);
}
elemImg.onmouseout = function() {
//alert(this.src);
this.src = "images/" + elemImg.id + "_out.gif";
}
}
}
歡迎來到經典的異步變量關閉問題。 – zzzzBov 2012-04-19 14:39:31