I am working on an accordian side navigation jquery piece and I am unable to get it to operate exactly how I want.
The menu was originally designed by Roshan Bhattarai and can be viewed at http://roshanbh.com.np/2008/06/accordion-menu-using-jquery.html The original design does not degrade well since the div containing the drop down menu information is set to display:none using CSS- but another forum poster suggested that the css selector be removed and the hiding function be set in the jquery. This is the code that was added to perform this function: $("div.menu_body").hide(); The code works to some extent, however the div does appear on the page for a split second on refresh or on page load and then diseappears. I am thinking I either did something wrong, am missing something, or could put that bit of code somewhere else in the script for the div to truly be hidden until the visible header is clicked. The whole point of adding this code is so the accordian menu degrades gracefully- if there is another way for the entire menu to be viewable with javascript turned off, please detail the steps. I have downloaded the newest version of jquery. Here is the entire script for the menu. <script type="text/javascript" language="javascript" src="/javascript/ jquery.js"></script> <script type="text/javascript"> <!--//---------------------------------+ // Developed by Roshan Bhattarai // Visit http://roshanbh.com.np for this script and more. // This notice MUST stay intact for legal use // ---------------------------------> $(document).ready(function() {$("div.menu_body").hide(); //slides the element with class "menu_body" when paragraph with class "menu_head" is clicked $("#firstpane p.menu_head").click(function() { $(this).css({backgroundImage:"url(down.png)"}).next ("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp ("slow"); $(this).siblings().css({backgroundImage:"url(left.png)"}); }); //slides the element with class "menu_body" when mouse is over the paragraph $("#secondpane p.menu_head").mouseover(function() { $(this).css({backgroundImage:"url(down.png)"}).next ("div.menu_body").slideDown(500).siblings("div.menu_body").slideUp ("slow"); $(this).siblings().css({backgroundImage:"url(left.png)"}); }); }); </script> The site is on a private server behind a firewall so I cannot share the site but I can provide as much information as possible to solve this issue. An example of that preload or "flashing" upon refresh of the page with this type of code is viewable on this website: http://docs.jquery.com/Effects/hide - If you view the demo where it stated "Click to hide me too" and continue to watch that line will refreshing the page, you will see the hidden information for a split second and then it will hide. I am wondering and trying to find a way to prevent that flash of hidden information to be viewable at all.