The subcategories tend to show for a split second on load or refresh. Is there a way to keep it shut and show them only when you click on the CATEGORY link? <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("jquery", "1"); </script> <script type="text/javascript"> $(document).ready(function() { $('#category ul').hide(); $('#category li a').click( function() { $(this).next().slideToggle('normal'); } ); }); </script> <style type="text/css"> #category, #category ul {margin: 0px; padding: 0px; text-align: left; list-style: none;} #category li {cursor: pointer; } </style> <ul id="category"> <li><a onclick="javascript:void(0);">CATEGORY</a><ul> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> </ul></li> </ul> Code (markup):
Instead of hiding them via jQuery, hide it in CSS (display: none) and show them when needed via javascript? It will however break a bit if you're concerned about accessibility
<html> <head> <title>UL LI TEST</title> <style> #category li ul { display: none; } #category li:hover ul { display: block } </style> </head> <body> <ul id="category"> <li><a href="#">CATEGORY</a> <ul> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> <li><a href="/">Subcategory</a></li> </ul> </li> </ul> </body> </html> HTML: Could that possibly work?