我正在寫一些非常簡單的代碼來動態改變鼠標懸停/鼠標移開圖片src:的JavaScript動態改變圖片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')。看看我== 5它的eventlistener覆蓋所有其他eventlistener(我= 1,2,3,4)?委託事件......以這樣的方式
'匿名偵聽器函數內img'指' (包含最後一個賦值:'rating5')。嘗試用'changeimg_color(this.id)'替換'changeimg_color(img);'或者只傳遞'this'(圖像產生鼠標事件)到'change *'函數省略'e()'wrappe河 – jensgram