Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавление класса с бэкграундом (https://javascript.ru/forum/dom-window/16152-dobavlenie-klassa-s-behkgraundom.html)

blaga 28.03.2011 11:43

Добавление класса с бэкграундом
 
Всем привет, такой вот вопрос возник.
есть у меня нестандартные радиобаттоны.
Реализованы они через jquery ui.
выглядят они так:

если выбрать текстовый варианты то они просто выделяются цветом.
А если выбрать звездочку то все предыдущие звездочки должны сменить бэкграунд. (так задается "звездность отеля")
Написал я скрипт небольшой для этого дела но вот проблема в хроме и осле работает отлично, а файерфокс и опера показывают неправильно. Только если два раза по одной и тойже звезде щелкнуть тогда выделятся предыдущие.
Код ниже:
Код:

//радио батоны       
        $( "#radio" ).buttonset();                                                       
        $(".stars").click(function() {
       
                        var radioId = this.id;
                        radioId=radioId.substr(radioId.length-1,1);
                       
                        while(radioId>1) {
                       
                                $("#label"+radioId).addClass('ui-state-active');
                                radioId--;
                        }
                       
               
        });

вроде бы все просто.
при клике на радио получаем его id. из id забираем последний символ (это число от 2 до 6)
и потом в цикле всем предыдущим добавляем класс с нужным бэкграундом.
Но почему то не хочет работать в файерфоксе и опере.
ссылка для ознакомления - http://a2themes.ru/demo/selectTour/

Всем заранее спасибо!

kostr 28.03.2011 16:38

Там у вас, по-моему, на onChange что-то срабатывает. Если написать не
$(".stars").click(function()
а
$(".stars").change(function()
то работает нормально.

goldserg 28.03.2011 16:58

Строка 135 и 270 на твоей страничке выполняются, таким образов в FF происходит окрашивание корректно, а затем также корректно окрашивание снимается.

Пользуйся FireBug, расставь BreakPoint и смотри почему запускаются другие функции, удачи.

blaga 29.03.2011 09:00

goldserg,
спасибо, натолкнуло на мысль которая решила пролему. :)


Часовой пояс GMT +3, время: 13:21.