我正在编写一些非常简单的代码来动态更改 mouseover/mouseout 上的图像 src:
function e(id) {
return document.getElementById(id);
}
function changeimg_bw(ele) {
e(ele).src='rating_bw.png';
}
function changeimg_color(ele)
e(ele).src='rating_color.png';
}
for(var i=1;i<=5;i++) {
var img ='rating'+i;
e(img).addEventListener('mouseover', function(event) {
changeimg_color(img);
});
e(img).addEventListener('mouseout', function(event) {
changeimg_bw(img);
});
}
这个想法相当简单:使用一组图像来模拟评分栏。当鼠标指针覆盖某些图像时,它应该改变颜色(理想情况下,包括所有以前的图像都应该改变颜色,但我在到达那里之前就卡住了)。我的问题是当我将鼠标悬停在任何图像上时,只有最后一张图像会改变颜色('rating5')。看起来当 i == 5 它的事件监听器覆盖了所有其他事件监听器(i = 1,2,3,4)?