私はこの1週間これに広範囲に取り組んできましたが、なぜこれが機能しないのか理解できません。
外部の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";
}
}
}