За последние 24 часа нас посетили 17420 программистов и 1651 робот. Сейчас ищут 863 программиста ...

Помогите с закрытием кнопок

Тема в разделе "JavaScript и AJAX", создана пользователем times, 8 авг 2013.

  1. times

    times Активный пользователь

    С нами с:
    22 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Есть 2 кнопки на сайте переключающие блоки кнопка 1('list-models') переключает на блок 1 ('#search-models-wrapper')
    кнопка 2 ('list-brands') переключает на блок 2 ('#search-brands-wrapper') Суть проблемы в том что блоки закрываются по клику вне блоков, а мне очень нужно чтобы они закрывались по клику на кнопки. Т.е. кнопки сейчас служат только для переключения блоков, а хочеться чтобы если например открыт блок1 по клику на кнопку 1 он же и закрывался.
    Вот сам кусок JS кода
    Код (Text):
    1.  $('.list-model').click(function(){
    2.         $('.list-all').addClass('list-models');
    3.         $('.list-all').removeClass('list-brands');
    4.         $('#search-brands-wrapper').hide();
    5.         $('#search-models-wrapper').show();
    6.         $('#hide_models_and_brands').show();
    7.     });
    8.  
    9.     $('.list-brand').click(function(){
    10.         $('.list-all').removeClass('list-models');
    11.         $('.list-all').addClass('list-brands');
    12.         $('#search-brands-wrapper').show();
    13.         $('#search-models-wrapper').hide();
    14.         $('#hide_models_and_brands').show();
    15.     });
    16.  
    17.     $('#hide_models_and_brands').click(function(){
    18.         $('#search-brands-wrapper').hide();
    19.         $('#search-models-wrapper').hide();
    20.         $('#hide_models_and_brands').hide();
    21.         $('.list-all').removeClass('list-brands');
    22.         $('.list-all').removeClass('list-models');
    23.     });
     
  2. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Ой как много всего, аж глаза болят, если используете jQuery, то все намного проще чем создавать и удалять классы, посмотрите базовые функции, которые есть в арсенале jQuery. При этом найдете для себя решение в одну строку ;-)
     
  3. shelestov

    shelestov Активный пользователь

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Ну так он и так использует jQuery. ))
     
  4. times

    times Активный пользователь

    С нами с:
    22 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    В том то и дело, если бы знал Jqery не спрашивал я только в HTML и CSS, потому и спрашиваю...
     
  5. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Код (Text):
    1. .toggle()
     
  6. times

    times Активный пользователь

    С нами с:
    22 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Краткость сестра таланта)
    а что сэтим делать??
     
  7. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Прочесть документацию по данной функции и просмотреть примеры, тогда для вас станет всё ясно!
     
  8. times

    times Активный пользователь

    С нами с:
    22 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Дело не в лени, а в том что не получается, курсов и литературы просмотрено/прочитано не мало, HTML 4 CSS 2,3 знаю хорошо, а PHP Javascript не знаю, в общем не дано.
     
  9. kosinus2012

    kosinus2012 Активный пользователь

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Так может не стоит за это и браться? Просмотрите документацию по .toggle() и примеры, не поняв и упустив сейчас само желание разбираться в этом, не догоните потом уже никогда.
     
  10. times

    times Активный пользователь

    С нами с:
    22 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Спасибо) попробую
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    .toggle():
    Данная функция находится в "Deprecated" и лучше ее уже не использовать.

    А вообще на вашем месте я бы по this-объекта который передаем, сохранять в переменную после события клика, создавая переменную якобы открытия, а потом когда еще раз кликнем на этот объект мы узнаем открыт ли он и если да, закроем.
    Есть определенный контейнер с ссылками или какой то уникальный ид или класс, мы найдем те ссылки которые нужны по уникальности и по их клику мы можем указать конкретные действия и изменения элементов.