Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Голосование с использованием prototype


Автор: Pattidor 15.9.2008, 12:23
Знатоки JS, помогите пожалуйста! Уже второй день голову ломаю, гугль не рулит (
Есть скрипт голосования с использованием библиотеки prototype .

Код

<!--//Скрипт изменения картинки при наведении//-->
 <script language="javascript">
<!--

             function ChangeImg() {
 if(document.images) {
  eval("document."+ChangeImg.arguments[0]+
  ".src=('"+ChangeImg.arguments[1]+"')");
 }
}

             function preload() {
  if (document.images) {
    var imgsrc = preload.arguments;
    arr=new Array(imgsrc.length);
    for (var j=0; j<imgsrc.length; j++) {
      arr[j] = new Image;
      arr[j].src = imgsrc[j];
    }
  }
}
//-->
</script>
<body onload="preload('Images/star_on.gif')">
  <!--// Конец смены картинки//-->
 <br>
<script src="js/prototype.js"></script>
<script>

            function rate( value ) {

    new Ajax.Updater( 'rating', 'modules.php?name=golos&file=anket&op=rate_anketa&login=<?php echo($login)?>',
    { method: 'post',
      parameters: { rate: value }} );
}
</script>
<div id="rating">
<img name="ImgName1" src="images/star_off.gif" style="cursor:url" onclick="rate(2)"
 onMouseOver="ChangeImg('ImgName1','images/star_on.gif')"
 onMouseOut="ChangeImg('ImgName1','images/star_off.gif')"></img>
<img name="ImgName2" src="images/star_off.gif" onclick="rate(4)"
 onMouseOver="ChangeImg('ImgName2','images/star_on.gif')"
 onMouseOut="ChangeImg('ImgName2','images/star_off.gif')"></img>
<img name="ImgName3" src="images/star_off.gif" onclick="rate(6)"
 onMouseOver="ChangeImg('ImgName3','images/star_on.gif')"
 onMouseOut="ChangeImg('ImgName3','images/star_off.gif')"></img>
<img name="ImgName4" src="images/star_off.gif" onclick="rate(8)"
 onMouseOver="ChangeImg('ImgName4','images/star_on.gif')"
 onMouseOut="ChangeImg('ImgName4','images/star_off.gif')"></img>
<img name="ImgName5" src="images/star_off.gif" onclick="rate(10)"
 onMouseOver="ChangeImg('ImgName5','images/star_on.gif')"
 onMouseOut="ChangeImg('ImgName5','images/star_off.gif')"></img>
<br/><br/>


Функция (rate_anketa) в которую отправляется переменная (rate), пишет её в базу и выводит кол. звёзд.
Всё это прекрасно работает в FF и в Opere. 
А вот в IE нехочет никак, просто никакой реакции на нажатие (( , облазил кучу статей и форумов но ничего для данной ситуации ненашел к сожалению, обновление prototype результатов не дало.
Может ктонить подскажет в чём проблема то?

Автор: Sanchezzz 15.9.2008, 13:19
я бы поискал другой есть и без prototype скрипты http://www.ajaxf1.com/product/ajax-rating-system.html..

прикрутить прототип не составит труда. 

Автор: Pattidor 15.9.2008, 15:31
Цитата

я бы поискал другой есть и без prototype скрипты например..

Для меня код в данном приме сложно читаем, не могу в нём разобраться

Автор: Pattidor 16.9.2008, 11:36
Попробовал разные варианты и итоге стал подозревать что в IE не работает конструкция (Ajax.Updater) из библиотеки prototype. Потому как, другие команды в моей функции выполняются. 
Скажите, ктонить использует в своих скриптах (Ajax.Updater из prototype) и работает ли такой скрипт в IE ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)