ďťż

[javascript] skrypt wariuje podświetlane gwiazdki - voting

       

Podstrony


telcocafe

Witam mam taki przykładowy kod który jest generowany w php:

<div style="width: 115px;" onmouseout="java script:voteReset()"> <input type="hidden" id="rate" value="2" /> <img src="addons/voting/images/icon_star.gif" id="vote1" onmouseover="java script:lightVote(1)"/> <img src="addons/voting/images/icon_star.gif" id="vote2" onmouseover="java script:lightVote(2)"/> <img src="addons/voting/images/icon_star_light.gif" id="vote3" onmouseover="java script:lightVote(3)"/> <img src="addons/voting/images/icon_star_light.gif" id="vote4" onmouseover="java script:lightVote(4)"/> <img src="addons/voting/images/icon_star_light.gif" id="vote5" onmouseover="java script:lightVote(5)"/> <br /><small>ocena: 2.5 z 2 głosów</small> </div>

oraz odpowiednie funkcje w java script:
function lightVote(rate) { for(var i=1;i<6;i++) { star = document.getElementById("vote" + i); star.src = 'addons/voting/images/icon_star_light.gif'; } for(var i=1;i<rate+1;i++) { star = document.getElementById("vote" + i); star.src = 'addons/voting/images/icon_star.gif'; } } function voteReset() { rate = document.getElementById("rate"); for(var i=1;i<6;i++) { star = document.getElementById("vote" + i); star.src = 'addons/voting/images/icon_star_light.gif'; } for(var i=1;i<rate.value+1;i++) { star = document.getElementById("vote" + i); star.src = 'addons/voting/images/icon_star.gif'; } }

zadaniem skryptu jest podświetlenie gwiazdki na którą najechano myszką oraz wszystkie te które znajdują się na lewo od niej,
po zjechaniu myszką z gwiazdek mają one mieć podświetlenie pokazujące ocenę (ilość domyślnie podświetlonych gwiazdek znajduje się w ukrytym inpucie)

problemem jest to że skrypt wariuje
gwiazdki znajdują się w div'ie, który posiada onmouseout(): voteReset() czyli gwiazdki powinny powrócić do swojej domyślnej wartości, ale problem jest taki że gdy najadę na gwiazdki to także wykonuje się ta funkcja, efekt? nic sie nie resetuje

bardzo proszę o pomoc :)
Użytkownik PiKey edytował ten post 24 lipiec 2008, 08:22


Daj onmouseout dla elementów gwiazdek.

teraz po zjechaniu nyszką zawsze są podświetlone wszystkie gwiazdki

Trochę zmodyfikowane, ale na pewno zrozumiesz<div style="width: 115px;"> <input type="hidden" id="rate" value="2" /> <img src="icon_star.gif" id="vote1" onmouseover="lightVote(1)" onmouseout="voteReset()" /> <img src="icon_star.gif" id="vote2" onmouseover="lightVote(2)" onmouseout="voteReset()" /> <img src="icon_star_light.gif" id="vote3" onmouseover="lightVote(3)" onmouseout="voteReset()" /> <img src="icon_star_light.gif" id="vote4" onmouseover="lightVote(4)" onmouseout="voteReset()" /> <img src="icon_star_light.gif" id="vote5" onmouseover="lightVote(5)" onmouseout="voteReset()" /> </div> <script> function lightVote(rate) { var star; for(var i=1;i<6;i++) { star = document.getElementById("vote" + i); star.src = 'icon_star_light.gif'; } for(i=1;i<rate+1;i++) { star = document.getElementById("vote" + i); star.src = 'icon_star.gif'; } } function voteReset() { lightVote(new Number(document.getElementById("rate").value)); } </script>
Użytkownik andrzej_aa edytował ten post 24 lipiec 2008, 12:31
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.