2012-01-08 60 views
0

我有一個鼠標功能的JavaScript和一個可點擊的div,事情是當我點擊圖像時,沒有任何事情發生,但在圖像外它的作品完美。圖像塊我的點擊div

<div id="1" onclick="SendRating(this.id);" onmouseover="rateStar(this.id)" ><img src="star.jpg"></div> 

和我的鼠標懸停功能。

function rateStar(rating){ 
    var i = 1; 
    var ratings = ''; 
    for (i==1; i<=5; i++){ 
     if (i<=rating){ 
      document.getElementById(i).innerHTML = '<img src="star1.gif">'; 
     } 
     else{ 
      document.getElementById(i).innerHTML = '<img src="star.jpg">'; 
     } 
    } 
} 

感謝

回答

2

ID不能以數字開頭。使你的代碼:

<div id="rating_1" score='1' onclick="SendRating(this.getAttribute('score'));" onmouseover="rateStar(this.id)" ><img src="star.jpg"></div> 

,改變你的JavaScript來

function rateStar(rating){ 
    var i = 1; 
    var ratings = ''; 
    for (i==1; i<=5; i++){ 
     if (i<=rating){ 
      document.getElementById('rating_'+i).innerHTML = '<img src="star1.gif">'; 
     } 
     else{ 
      document.getElementById('rating_'+i).innerHTML = '<img src="star.jpg">'; 
     } 
    } 
} 

這可能不是解決您的問題,但你需要做的是在任何情況下。此外,想想onclick事件移動到圖像本身:

<div><img src="star.jpg" score='1' id="rating_1" onclick="SendRating(this.getAttribute('score'));" ></div> 

,並改變你的JS到:

function rateStar(rating){ 
     var i = 1; 
     var ratings = ''; 
     for (i==1; i<=5; i++){ 
      if (i<=rating){ 
       document.getElementById('rating_'+i).src= 'star1.gif'; 
      } 
      else{ 
       document.getElementById('rating_'+i).src= 'star.jpg'; 
      } 
     } 
    } 

所以你只是改變圖像源

+0

就像一個魅力: ) 謝謝 – Dymond 2012-01-08 19:50:59