jQuery addShowHideLink plugin example

Default Settings

In it's most basic form, it can just be called on an object which will add a link which will swap between "Show" and "Hide". Click the "Show" link below to see it in action.

$('#objectToHide').addShowHideLink();

Curabitur malesuada auctor commodo. Nam vitae erat ut enim suscipit feugiat. Praesent facilisis eros sit amet arcu porttitor id condimentum nisi ultrices. Cras ac bibendum odio. Suspendisse vel odio at tortor semper pharetra. Vestibulum convallis blandit turpis, in suscipit ante aliquam et. Nunc congue dolor in lectus laoreet a aliquam erat fringilla. Morbi accumsan lectus sit amet libero auctor euismod. Nam gravida ante sed velit viverra suscipit. Nulla ultrices rutrum magna, eget mollis leo facilisis non. Donec sed nulla at nisi luctus condimentum quis ut libero. Proin viverra semper quam, sit amet tincidunt quam dignissim vitae. Ut consequat laoreet hendrerit. Etiam posuere, velit quis posuere ultricies, ipsum mauris porttitor justo, vel hendrerit erat nibh ac odio. Aenean mattis suscipit nisl, interdum molestie dui placerat in.

Praesent tellus nibh, mollis non feugiat eu, consequat vitae risus. Vestibulum dapibus commodo dui, et consequat enim gravida at. Vestibulum venenatis mauris neque. Fusce ut lectus erat; id mattis mauris. Etiam nec orci eu velit aliquam rhoncus. In ullamcorper suscipit lacus ut adipiscing. Integer elit mauris; hendrerit eu interdum ac, pellentesque a ligula. Mauris at erat a massa auctor venenatis ut sit amet felis. Ut consectetur, odio vel euismod dictum, nulla nibh vehicula mi, eget porta purus elit et justo. Suspendisse potenti. Sed enim mauris, convallis posuere vestibulum at, adipiscing non dolor. Aenean a ligula metus! Nullam tincidunt lectus vel justo euismod ut tristique metus dictum. Sed mattis elementum eros ac commodo? Duis a tellus turpis, et interdum sem. Vestibulum porta arcu at ante volutpat et sollicitudin nisl fringilla. Nam est mi, adipiscing eu cursus quis, auctor vel mauris. Pellentesque a eros sit amet neque feugiat adipiscing.

Phasellus nulla diam; molestie sed iaculis vitae; hendrerit blandit ipsum. Vivamus volutpat arcu a magna tempus a sagittis orci suscipit. Morbi vitae ligula eget magna laoreet luctus id non lorem. Phasellus sagittis dapibus erat, egestas ornare ipsum bibendum non? Maecenas vel lectus eget eros lacinia suscipit. Maecenas placerat euismod nibh? Cras posuere quam eget tortor vehicula et cursus nisi rhoncus. Maecenas euismod euismod adipiscing. Donec dolor odio, aliquet eu convallis sit amet, posuere a nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacus orci, venenatis sed elementum sit amet, placerat sit amet erat. Sed dapibus, velit quis lacinia faucibus, dui leo imperdiet nisl, quis bibendum elit felis vel nisl. Donec non nunc lorem. Aliquam rhoncus rutrum purus. Cras rhoncus mauris tellus.

Advanced Settings

There are also a number of more advanced options you can set. You can specify one -or more- of these options when you initialise. An example of this would be (Click the "Show Advanced Options" link to see it in action):

$('#objectToHide').addShowHideLink({ 
		linkClass: 'showHideLnk',
		paraClass: 'showHide',
		openClass: 'showHideOpen',
		showText: 'Show Advanced Options',
		hideText: 'Hide Advanced Options',
		linkActions: function(){
			alert('The link was clicked');
		}
	});

Curabitur malesuada auctor commodo. Nam vitae erat ut enim suscipit feugiat. Praesent facilisis eros sit amet arcu porttitor id condimentum nisi ultrices. Cras ac bibendum odio. Suspendisse vel odio at tortor semper pharetra. Vestibulum convallis blandit turpis, in suscipit ante aliquam et. Nunc congue dolor in lectus laoreet a aliquam erat fringilla. Morbi accumsan lectus sit amet libero auctor euismod. Nam gravida ante sed velit viverra suscipit. Nulla ultrices rutrum magna, eget mollis leo facilisis non. Donec sed nulla at nisi luctus condimentum quis ut libero. Proin viverra semper quam, sit amet tincidunt quam dignissim vitae. Ut consequat laoreet hendrerit. Etiam posuere, velit quis posuere ultricies, ipsum mauris porttitor justo, vel hendrerit erat nibh ac odio. Aenean mattis suscipit nisl, interdum molestie dui placerat in.

Praesent tellus nibh, mollis non feugiat eu, consequat vitae risus. Vestibulum dapibus commodo dui, et consequat enim gravida at. Vestibulum venenatis mauris neque. Fusce ut lectus erat; id mattis mauris. Etiam nec orci eu velit aliquam rhoncus. In ullamcorper suscipit lacus ut adipiscing. Integer elit mauris; hendrerit eu interdum ac, pellentesque a ligula. Mauris at erat a massa auctor venenatis ut sit amet felis. Ut consectetur, odio vel euismod dictum, nulla nibh vehicula mi, eget porta purus elit et justo. Suspendisse potenti. Sed enim mauris, convallis posuere vestibulum at, adipiscing non dolor. Aenean a ligula metus! Nullam tincidunt lectus vel justo euismod ut tristique metus dictum. Sed mattis elementum eros ac commodo? Duis a tellus turpis, et interdum sem. Vestibulum porta arcu at ante volutpat et sollicitudin nisl fringilla. Nam est mi, adipiscing eu cursus quis, auctor vel mauris. Pellentesque a eros sit amet neque feugiat adipiscing.

Phasellus nulla diam; molestie sed iaculis vitae; hendrerit blandit ipsum. Vivamus volutpat arcu a magna tempus a sagittis orci suscipit. Morbi vitae ligula eget magna laoreet luctus id non lorem. Phasellus sagittis dapibus erat, egestas ornare ipsum bibendum non? Maecenas vel lectus eget eros lacinia suscipit. Maecenas placerat euismod nibh? Cras posuere quam eget tortor vehicula et cursus nisi rhoncus. Maecenas euismod euismod adipiscing. Donec dolor odio, aliquet eu convallis sit amet, posuere a nisl. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacus orci, venenatis sed elementum sit amet, placerat sit amet erat. Sed dapibus, velit quis lacinia faucibus, dui leo imperdiet nisl, quis bibendum elit felis vel nisl. Donec non nunc lorem. Aliquam rhoncus rutrum purus. Cras rhoncus mauris tellus.

The Options

The options you can specify are overviewed below:

linkClass The class that is applied to the show/hide link -allows you to target the link on it's own if needed.
paraClass A class that is applied to the paragrapgh that contains the show/hide link.
openClass The class applied to the link when the object is shown, this allows you to bold the text or add an image etc by targeting .open in your css.
showText The text for the link when the object is hidden.
hideText The text for the link when the object is shown.
linkActions Any function that should be called when the user clicks the link (this allows you to wire up extra) validation etc if necessary.

Download

Download the jQuery addShowHideLink plugin including this example here.

If you have any problems or questions, please leave me a comment on my blog here.

Credits

Tim Gaunt (@timgaunt) from The Site Doctor Ltd

Icons from the Fam Fam Fam icon set courtesy of Mark James (who isn't a designer :P)