За последние 24 часа нас посетили 16155 программистов и 1666 роботов. Сейчас ищет 891 программист ...

Добавить класс к элементу и сохранить изменение после reload

Тема в разделе "JavaScript и AJAX", создана пользователем dsqwared, 27 июл 2014.

  1. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Добрый день, есть задача, сделать несколько css кнопок, и чтоб можно было выбрать только одну из них, при выборе, чтоб кнопка изменяла вид... сделал кнопки, подключил jquery обработчик,

    Код (Text):
    1. <div class="tab-pane-admin fade" id="styling">
    2.                         <div class="input-block-admin">
    3.                             <div class="buttons-predefined">
    4.                                <button name="color_btn" class="btn blue ">Blue</button>
    5.                                <button name="color_btn" class="btn green " >Green</button>
    6.                             </div>
    7.                         </div>
    8. </div>
    вот jquery обработчик нажатий который получилось сваять, я далеко не спец в jquery, так что сильно не ругайте.
    Код (Text):
    1. (function($) {  
    2. $(function() {  
    3.   $('button.blue').click(function() {
    4.     $(this).addClass('active');
    5. });
    6. $('button.blue.active').click(function() {
    7.     $(this).removeClass('active');
    8. });
    9. $('button.green').click(function() {
    10.     $(this).addClass('active');
    11. });
    12. $('button.green.active').click(function() {
    13.     $(this).removeClass('active');
    14. });
    15. })  
    16. })(jQuery)
    Код (Text):
    1.  
    2. .tab-pane-admin {
    3. padding-bottom: 20px;
    4. }
    5. .blue {
    6.     background-color: #345e9e;
    7.     border: 1px solid #345e9e;
    8. }
    9. .green {
    10.     background-color: #006746;
    11.     border: 1px solid #006746;
    12. }
    13. .buttons-predefined button{
    14.     float: left;
    15. }
    16. .buttons-predefined button:hover {
    17.     float: left;
    18. }
    19. btn {
    20.     float: right;
    21.     margin-top: 14px;
    22.     margin-right: 20px;
    23.     padding: 5px 15px;
    24.     outline: none;
    25.     border: none;
    26.     border: 1px solid #000;
    27.     border-radius: 4px;
    28.  
    29.     background-color: #000;
    30.  
    31.     color: #fff;
    32.  
    33.     -webkit-transition: all 0.2s;
    34.     -moz-transition: all 0.2s;
    35.     transition: all 0.2s;
    36. }
    37. .btn:hover {
    38.     background-color: #fff;
    39.  
    40.     color: #000;
    41. }
    42. .active {
    43.     background-color: #fff;
    44.  
    45.     color: #000;
    46. }
    пока работает, только на добавление класса, но почему-то на второе нажатие кнопки уже не реагирует, класс не убирается.

    может я не по тому пути пошел, подскажите верный путь... а то зашел в тупик... Спасибо за помощь хоть какую-то.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Re: Добавить класс к элементу и сохранить изменение после re

    не пытаешся ли ты изобрести чекбоксы и радиокнопки, но только с кучей плохоуправляемого г* в довесок?

    а проблема твоя вероятно в том, что ты не видишь: в тот момент, когда интерпретатор обрабатывает строку $('button.green.active'), этому селектору не соответствует н и ч е г о. поэтому обработчик никуда не прибиндится.

    p.s. пользуйся http://jsfiddle.net/ чтобы дать людям поиграть со своим кодом.

    p.p.s. тема перемещена в раздел Javascript.
     
  3. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Re: Добавить класс к элементу и сохранить изменение после re

    возможно пытаюсь создать велосипед ... но из-за нехватки знаний другого не могу придумать и найти тоже...

    вообще задача, такая, выбрать цвет, и в зависсимости от выбранного цвета подключать тот или иной css.
    вот ссылкаhttp://jsfiddle.net/9a5Jj/6/ помогите плз...

    даже если и найду способ сохранить классы после нажатия на кнопку, хз, потом как проверить какая кнопка нажата, чтобы подключить css.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Re: Добавить класс к элементу и сохранить изменение после re

    непонятна задача. "подключить css" это что?

    почему ты не рассматриваешь вариант <input type="radio"> ? там не нужна никакая магия и позже не надо ничего придумывать для отправки формы.
     
  5. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Re: Добавить класс к элементу и сохранить изменение после re

    хм, ну как объяснить... в общем есть сайт на wordpress, делаю тему для него, в теме уже сделал страницу настроек для самой темы, в этих настройках надо сделать выбор цветовой схемы для темы. вот и мучаюсь )).. кнопки нарисовал, теперь задача их обработать... и хочется чтобы кнопки красивые были как уже есть... вот и получается, что при выборе цвета, я подключаю нужный css c нужными цветами, уже есть скрипт, который подключает css... вот только не получается определить какая кнопка выбрана, чтобы его запускать...
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Re: Добавить класс к элементу и сохранить изменение после re

    Есть хороший принцип: сначала сделай чтобы работало, и только потом [ может быть ] украшай. Поэтому сделай выбор радиокнопкой БЕЗ джаваскрипта.
    Нельзя просто взять и сделать сайт без базовых знаний html :)
     
  7. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Re: Добавить класс к элементу и сохранить изменение после re

    я уже делал этот механизм, с помощью select, все работало... теперь хочу сделать красиво, чтобы кнопочками можно было выбирать цвет.
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
  9. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Re: Добавить класс к элементу и сохранить изменение после re

    ВАУ супер, то что надо, спасибо большущее, готов отблагодарить, скинь в лс номер карточки... спасибо.!!!
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Re: Добавить класс к элементу и сохранить изменение после re

    да ладно! считай что это подарок ко дню ВМФ ;)
     
  11. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Re: Добавить класс к элементу и сохранить изменение после re

    Спасибо еще раз!!! два дня искал...
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Re: Добавить класс к элементу и сохранить изменение после re

    я почитал дальше примеры с того же stackoverflow, больше понравилось решение http://jsfiddle.net/496c9/ т.к. там вообще не нужен JS, чисто стилями весь look-n-feel решается.
    остается в инпуты value="цвет" добавить и собственно form вместо div — тогда данные реально будут отправляться по назначению.

    это правильный путь!
     
  13. dsqwared

    dsqwared Новичок

    С нами с:
    27 июл 2014
    Сообщения:
    7
    Симпатии:
    0
    Re: Добавить класс к элементу и сохранить изменение после re

    cупер, попробую, спасибо большое!!!