2012-01-08 19 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