21:40 

Подскажите, пожалуйста, решение

Вашта Нерада
Любая Тень разительно отличается от своего хозяина… Они тоже считают нас своими Тенями…(с)
Задача: при помощи jQuery назначать и отменять классы для body. Будет два (пока два, потом может и больше) селекта с ссылками. Кликанье в одну из ссылок селекта должно назначать класс и отменять класс из того же селекта, но при этом не менять класс из другого селекта.

Чтобы проще - объясню на примере:

Селект 1: 1,2,3
Селект 2: a,b,c

При клике на "1" к body добавляется класс "1". При клике на "2" добавляется класс "2", а класс "1" убирается. И т.д.
НО: при клике на "а", класс "а" добавляется, но класс от первого селекта не исчезает. И наоборот - при клике "1" не исчезает класс из селекта 2.

В итоге должны получаться комбинации типа body class="1 a" в зависимости от того, как пользователи выберут.

Пыталась сама, но получается что-то громоздкое:



Идея была в том, что при клике на класс все классы поименно снимаются, но это как-то совсем-совсем крииииво...

@темы: JavaScript

Комментарии
2012-02-24 в 22:15 

alhames
alhames.ru
У <select> есть событие change - его и используйте.
Выглядить будет примерно так:


При смене класса записываем его в атрибут data-status, и при следующей смене удаляем.
Вроде просто.. Это то что вам нужно?

2012-02-24 в 22:51 

Вашта Нерада
Любая Тень разительно отличается от своего хозяина… Они тоже считают нас своими Тенями…(с)
alhames, :beg::beg::beg: оно! Спасибо!

А не подскажете, как сделать чтобы вместо самого текста ссылки (как сейчас) в виде класса добавлялся id ссылки?

2012-02-24 в 23:40 

alhames
alhames.ru
$(this).attr('id') вернет элемента. В данном случае он вернет id тега select.
Поэтому делаем селектор: $(this).find('option:selected').attr('id')
Проверьте, вроде должно сработать.
Самое главное: вы логику поняли-то?)

2012-02-25 в 01:10 

Вашта Нерада
Любая Тень разительно отличается от своего хозяина… Они тоже считают нас своими Тенями…(с)
alhames, и еще раз спасибо. Работает!

Самое главное: вы логику поняли-то?)

То, что получилось в итоге:



При изменении селекта, если его атрибут data-status не пустой, то у body надо удалить класс (который в атрибуте data-status). Дальше добавить к body класс, который у этого селекта является для выбранного option id. Дальше у этого селекта в атрибут data-status записываем тем же путем выбранный ранее класс.

Логику понимаю. Сама бы не написала. Спасибо громадное. Мне еще учиться и учиться, я пока только простые вещи умею... :shuffle2:

     

@web-программирование

главная