【发布时间】:2016-01-04 04:18:24
【问题描述】:
当我使用 javascript 将鼠标悬停时,我希望图像发生变化。 img src 应该与 id 交换。问题是循环出了点问题,当我运行它时,它将交换图像,但仅与图像“images/h6.jpg”交换。所以这三个都有相同的图片。
HTML:
<body>
<section>
<h1>Image Rollovers</h1>
<ul id="image_rollovers">
<li><img src="images/h1.jpg" alt="" id="images/h4.jpg"></li>
<li><img src="images/h2.jpg" alt="" id="images/h5.jpg"></li>
<li><img src="images/h3.jpg" alt="" id="images/h6.jpg"></li>
</ul>
</section>
Javascript:
var $ = function (id) {
return document.getElementById(id);
}
//ONLOAD EVENT HANDLER
window.onload = function () {
//GET IMAGE TAGS
var listNode = $("image_rollovers");
var imageList = listNode.getElementsByTagName("img");
//PROCESS EACH IMAGE
var i, imageNode, image;
for ( i = 0 ; i < imageList.length ; i++ ){
//1. GET IMG TAG
imageNode = imageList[i];
//2. PRELOAD IMAGE FROM IMG TAG
image = new Image();
image.src = imageNode.getAttribute("id");
//3. ATTACH EVENT HANDLERS (onmouseover & onmouseout) TO IMG TAG
imageNode.onmouseenter = function (evt) {
var img = this;
img.src = imageNode.getAttribute("id");
if (!evt) evt = window.event;
if( evt.preventDefault ) {
evt.preventDefault();
} else {
evt.returnValue = false;
}
}
}
}
【问题讨论】:
标签: javascript html