Звездный рейтинг на 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, время: 02:17. |