Звездный рейтинг на js
Код:
<div class="rating floatL"> Код:
.shoppibleIndex .radio И этот рейтинг работает, но не работает в IE я попыталась написать код на js, который пока просто находит отмеченную звездочку и делает ее активной Код:
.shoppibleIndex .starNoActiv $(document).ready(function(){ $('.vote input[type="radio"]').click(function() { $(this).next().children().filter('span').addClass('starActiv'); }) }); Подскажите как сделать, чтобы рейтинг нормально работал, то есть при клике по звездочке по левую сторону они заполнялись - class starActiv, а по правую становились не заполены - class starNoActiv. Заранее спасибо. |
как вариант - нумеруешь звездочки с помощью например - так: <span data-rating="3">...
при клике - проверяешь какой номер у текущей звездочки ну и соответсвенно все что меньше делаешь активным - все что больше неактивным. |
но span не может принимать такой атрибут data-rating.
|
может. Вообще поидее можно даже просто rating - все будет работать, разве что валидатор будет ругаться. А вот с помощью data-* - вполне можно тегам назначать кастомные аттрибуты. Хотя можно даже и без дата атрибутов обойтись.
примерно так: $('.vote input[type="radio"]').click(function() { var it = this; $('.vote input[type="radio"]').each(function() { if (it != this) { $(this).addClass('starActiv'); } else { return false; } }); }) Здесь мы в цикле прогоняем весь список элементов - и если элемент не равен тому - на который кликнули - значит надо добавить класс. Если же равен тому на который кликнули - значит надо выйти из цикла. Насчет data-rating - гугли "html data attributes" |
Часовой пояс GMT +3, время: 01:05. |