Скрипт работает только в 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, время: 20:07. |