Делал сайт, меню прорабатывал очень долго, благодаря чему просто наелся 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'); }; }); });
В таких случаях я использую возможности jquery
а тупо на ксс не льзя сделать? =)
или вам нужен эффект какойто?
Уже сделал. [Olga] подсобила. Спасибо.
Сайт на битриксе. На CSS получится не здорово. Так как компонент получится кривой, и внутреннее меню не будет редактироваться(нельзя будет добавить — убрать пункт).
Главное клиент доволен. Меню получилось красивое и удобное.
Ну с transitions css3-го меню будет красивое в новых браузерах и без js, а для старых браузеров скудный веб без красоты надо оставить (ну я считаю что если уж корпоративная политика не позволяет поменять устаревший браузер, то зачем работникам какая либо красота, если выпадать на :hover не красиво, и надо плавненько, — «обновитесь пожалуйста»)
На будущее удобно выкладывать код на jsfiddle.net сразу понятно, что надо исправить и как работает