jQuery Accordion Tutorial

If you are looking for an easy way to create a jQuery Accordion and don’t wish to use the jQuery UI Accordion, I have created something much simpler that you can use.

I ended up building my own jQuery Accordion after learning how big the include (16kb minified) for the jQuery UI core with Accordion is. I also noticed there is a page flicker as the accordion initiliazes after the dom has loaded. The flicker is hard to debug because the html is rewritten on the fly using jQuery so it makes it hard to style it from to prevent the flicker before page load.

HTML:

Top Searches

Top Products

Top Colors

jQuery:

$(document).ready(function() {
   // put all your jQuery goodness in here.
   // Do not instantiate elements until the document has finished loading
	//jQuery Easy Accordion
	$('.accordion-list:not(:first)').hide();
	$('.accordion-list:first').show();
	$('.accordion-header:first').addClass('active');
	$('.accordion-list:first').addClass('content-active');
	$('.accordion-header').click(function () {
		$('.accordion-list:visible').slideUp().prev().removeClass('active');
		$('.accordion-list:visible').removeClass('content-active');
		$(this).addClass('active').next().slideDown();
		$('.accordion-list').addClass('content-active');
	});
});

If you would like to see a working demo, click here.

7 Comments

Category jQuery, Web

You can follow any responses to this entry through the RSS 2.0 feed.

7 Responses to “jQuery Accordion Tutorial”

7 Comments so far
  1. Thanks for the this, it’s extremely extensive and useful!,do check out the link below
    http://www.tutorials99.com

    where all tutorials have a Higher page rank and professional.Very helpful for beginners…

  2. where is the CSS.

  3. yeah – no CSS?

  4. Thanks a lot. this is exactly what i was looking for. i wanted the 1st topic to be expanded and the rest collapsed. after searching for 2 hours i found this. i made some customizations to this code. i replaced with <div>. works great.

    $('.accordion-header:first').addClass('active');
    $('.accordion-list:first').addClass('content-active');

    what does the ":first" mean in the above code?

  5. it's CSS3 – look it up. It's great for the browsers than support it but I wouldn't count on it for accessibility.

  6. Hi. Can someone say me where copy jQuery code wrote above into Magento?

  7. thanks for your sharing,I use accordion menu on my website…




XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

By submitting a comment here you grant Jake Rutter – Front-End Developer and Designer, CSS, JavaScript and jQuery, PHP, Wordpress, Expression Engine, Magento a perpetual license to reproduce your words and name/web site in attribution. Inappropriate comments will be removed at admin's discretion.