What I did at work today

Mar 23 2009

Code Graveyard

Developed a template I shouldn’t have. Again.

var CollapsableList = function() {
	
	var COLLAPSED_CLASS = "collapsed";
	
	function init(container) {
		if (! container.data("collapsableList")) {
			container.data("collapsableList", new instance(container));
		}	
	};
	
	function instance(container) {
		this.container = container;
		addBehavior(this);
	};
	
	instance.prototype = {
		find : function() {
			return this.container.find.apply(this.container, arguments);
		}
	};
	
	function addBehavior(instance) {
		instance.find("h3").click(toggle, instance);
	};
	
	function toggle(e) {
		var title = $(this);
		var list = title.siblings("ul");
		
		title.toggleClass(COLLAPSED_CLASS);
		list.slideToggle();
	};
	
	return {
		init: init
	};
}();

Page 1 of 1