Делал сайт, меню прорабатывал очень долго, благодаря чему просто наелся JQuery, изучил очень много функций и операторов, плагинов.

Но меню все-таки имеет незначительный минус.

Как сделать чтобы при нажатии на любой пункт меню, все открытые ранее сварачивались? Естественно, нажатое раскрывалось?

Вот код

$(document).ready(function(){
    $('li b').click(function(){
               $('.c_menu').find('ul').removeClass('db').addClass('dn'); 
               if($(this).hasClass('rf')){$(this).removeClass('rf');}else{ $(this).addClass('rf');};
           if($('li b').hasClass('rf') && $('li').find('ul').hasClass('dn')){
          $('li').has('b.rf').find('ul').removeClass('dn').addClass('db');
           } else if($('li').find('ul').hasClass('db')){
              $('li').find('ul').removeClass('db').addClass('dn');
         };

    });
        
});
Оценить:|
  
Комментировать
Раздел: Помощь    
Просмотров: 7761
Комментариев (4)
  1. Ольга [Olga]
    29.09.2011 в 11:48

    В таких случаях я использую возможности jquery

    $(".menu dd").hide(); 
    $(".menu dt").click(function () {
          $(".menu dd").slideUp("slow"); 
          $(this).next("dd").slideToggle("slow");
    });
  2. Xap40
    Роман [Xap40]
    29.09.2011 в 15:31

    а тупо на ксс не льзя сделать? =)
    или вам нужен эффект какойто?

  3. Lemaro
    Ромка [Lemaro]
    30.09.2011 в 08:41

    Уже сделал. [Olga] подсобила. Спасибо.

    Сайт на битриксе. На CSS получится не здорово. Так как компонент получится кривой, и внутреннее меню не будет редактироваться(нельзя будет добавить — убрать пункт).

    Главное клиент доволен. Меню получилось красивое и удобное.

    • Sidoruk-SV
      30.09.2011 в 12:47

      Ну с transitions css3-го меню будет красивое в новых браузерах и без js, а для старых браузеров скудный веб без красоты надо оставить (ну я считаю что если уж корпоративная политика не позволяет поменять устаревший браузер, то зачем работникам какая либо красота, если выпадать на :hover не красиво, и надо плавненько, — «обновитесь пожалуйста»)

      На будущее удобно выкладывать код на jsfiddle.net сразу понятно, что надо исправить и как работает

Оставить комментарий