jQuery.fn.accordion = function(options) { var SLIDE_DOWN_SPEED = 'slow'; var SLIDE_UP_SPEED = 'fast'; var startClosed = options && options.start && options.start == 'closed'; var on = options && options.on && (typeof options.on == 'number' && options.on > 0) ? options.on - 1 : 0; return this.each(function() { jQuery(this).addClass('accordion'); // use to activate styling jQuery(this).find('dd').hide(); jQuery(this).find('dt').find('span').click(function() { jQuery(this.parentNode.parentNode).find('dt').removeClass('selected'); jQuery(this.parentNode).addClass('selected'); var current = jQuery(this.parentNode.parentNode).find('dd:visible'); var next = jQuery(this.parentNode).find('+dd'); if (current[0] != next[0]) { current.hide(); } if (next.is(':visible')) { next.slideUp(SLIDE_UP_SPEED); } else { next.slideDown(SLIDE_DOWN_SPEED); } }); //if (!startClosed) { // jQuery(this.parentNode).find('dd:eq(' + on + ')').slideDown(SLIDE_DOWN_SPEED); //} }); }; var loadr = function() { $('#tree').accordion(); $('#tree dd.open').slideDown('slow'); } $(document).ready(loadr);