Скрипт работает только в Mazilla
Добрый день.
Столкнулся с проблемой, что скрипт работает только в мазиле. В опере и ИЕ - не пашет (в других не проверял) Помогите пожалуйста разобраться <label>* Ваша оценка:</label> <div class="reiting"> <script language="JavaScript" type="text/javascript"> {literal} function vote(score) { jQuery('input[name=mark]').val(score); return false; } {/literal} </script> <ul id="rate-stars" class="unit-rating" style="width:100px;"> {literal} <li class="current-rating" style="width:100px;"> </li> <li><a href='javascript:void(0)' onclick='javascript:vote("1"); active(1, "Не лучший выбор.");' rel='1' class="r1-unit rater" >Очень плохо</a></li> <li><a href='javascript:void(0)' onclick='javascript:vote("2"); active(2, "Так себе выбор.");' rel='' class="r2-unit rater" >Плохо</a></li> <li><a href='javascript:void(0)' onclick='javascript:vote("3"); active(3, "Ничего выдающегося.");' rel='' class="r3-unit rater" >Средне</a></li> <li><a href='javascript:void(0)' onclick='javascript:vote("4"); active(4, "Хороший выбор!");' rel='' class="r4-unit rater" >Хорошо</a></li> <li><a href='javascript:void(0)' onclick='javascript:vote("5"); active(5, "Отлично, всем советую!");' rel='' class="r5-unit rater"> Отлично</a></li> {/literal} </ul> </div> <div class="text-big" id="rate-text"></div> <script language="JavaScript" type="text/javascript"> {literal} function active(current, label) { jQuery('.unit-rating a').removeClass('active'); var i = 1; jQuery('.unit-rating a').each(function(){ if (i <= current) jQuery(this).addClass('active'); i++; }); jQuery('#rate-text').text(label); } {/literal} </script> </div> Заранее благодарен |
Посмотреть можно на странице:
http://tottys.ru/product/bandai-2764...etjan/reviews/ "Ваша оценка" - в мазиле при клике на звездах - выводит оценку. В других браузерах - ни чего не происходит |
Для начала исправьте эти ошибки, они возникают еще до голосования:
Цитата:
Дело в том, что обработчики событий, назначенные с помощью атрибутов, оборачиваются в with-блоки с родительскими элементами. Получается что все свойства сначала ищутся у элемента, на котором стоит обработчик (именно поэтому можно писать в обработчике ченить типа value='bla', тоесть без ключегого слова this ), затем у всех предков, и только потом у глобального объекта (window) В вашем случае срабатывает review_form.vote (а <input> - это объект конечно), так что до функции window.vote() дело не доходит. Поэтому получаем ошибку: Цитата:
|
Обгромное спасибо за развернутый ответ.
Все исправил - работает :) |
Часовой пояс GMT +3, время: 02:40. |