(function(jQuery){ jQuery.fn.extend({ accordion: function() { return this.each(function() { var $ul = $(this); if($ul.data('sh_menu')) return false; $.each($ul.find('ul, li>div'), function(){ $(this).data('sh_menu', true); $(this).hide(); }); $.each($ul.find('a'), function(){ $(this).click(function(e){ activate(this); return void(0); }); }); var active = (location.hash)?$(this).find('a[href=' + location.hash + ']')[0]:''; if(active){ activate(active, 'toggle'); $(active).parents().show(); } function activate(el,effect){ $(el).parent('li').toggleClass('active').siblings().removeClass('active').children('ul, div').slideUp('fast'); $(el).siblings('ul, div')[(effect || 'slideToggle')]((!effect)?'fast':null); } }); } }); })(jQuery);