I am working from an existing template and I have gotten my menu to add the class ulDisplay to the list items and open the whole menu on hover. Now I would like to animate the action instead of it just popping open? The menu is four levels deep so the lines that find the children multiple levels deep are important.
here is the script:
$(document).ready(function() {
$('ul#nav-primary').hover(function() {
$(this).addClass("ulDisplay");
$(this).find('ul,li').removeClass("ulHide");
$(this).find('ul,li').addClass("ulDisplay");
},
function() {
$('ul#nav-primary').removeClass("ulDisplay");
$('ul#nav-primary').find('ul,li').removeClass("ulDisplay");
$('ul#nav-primary li').find('ul,li').addClass("ulHide");
})
});
SORRY SHOULD HAVE ADDED THIS EARLIER:
WHAT I HAVE TRIED SO FAR THAT DOES NOT WORK:
$(document).ready(function() {
$('ul#nav-primary').hover(function() {
$(this).slideToggle('normal');
$(this).find('ul,li').removeClass("ulHide");
$(this).find('ul,li').addClass("ulDisplay");
},
function() {
$('ul#nav-primary').slideToggle('normal');
$('ul#nav-primary li').find('ul,li').removeClass("ulDisplay");
$('ul#nav-primary li').find('ul,li').addClass("ulHide");
})
});
ALSO I HAVE TRIED:
$(document).ready(function() {
$('ul#nav-primary').hover(function() {
//$(this).addClass("ulDisplay");
$('ul#nav-primary li').find('ul,li').removeClass("ulHide");
$('ul#nav-primary li').find('ul,li').addClass("ulDisplay").stop(true, true).slideToggle(1000);
},
function() {
//$('ul#nav-primary').removeClass("ulDisplay");
$('ul#nav-primary li').find('ul,li').removeClass("ulDisplay").stop(true, true).slideToggle(1000);
$('ul#nav-primary li').find('ul,li').addClass("ulHide");
})
});
AND FINALLY:
$(document).ready(function() {
$('ul#nav-primary').hover(function() {
//$(this).addClass("ulDisplay");
$('ul#nav-primary li').find('ul,li').removeClass("ulHide");
$('ul#nav-primary li').find('ul,li').addClass("ulDisplay", 1000);
},
function() {
//$('ul#nav-primary').removeClass("ulDisplay");
$('ul#nav-primary li').find('ul,li').removeClass("ulDisplay", 1000);
$('ul#nav-primary li').find('ul,li').addClass("ulHide");
})
});
Here is the HTML:
<div id="nav">
<h3><a href="/TemplatePackage/subtopic/B/index.html">Topic Homepage</a></h3>
<ul id="nav-primary">
<li><a href="#">Level 1</a>
<ul>
<li><a href="#">Level 2</a>
<ul>
<li><a href="#">Level 3</a>
<ul>
<li><a href="#">Level 4 - Item 1</a></li>
<li><a href="#">Level 4 - Item 2</a></li>
<li><a href="#">Level 4 - Item 3</a></li>
<li><a href="#">Level 4 - Item 4</a></li>
<!--<li><a href="/TemplatePackage/subtopic/B/basic_info/screening/level4.html#5">Level 4 - Item 5</a></li>-->
</ul>
</li>
<li><a href="#">Level 3</a></li>
<li><a href="#">Level 3</a></li>
<li><a href="#">Level 3</a></li>
</ul>
</li>
<li><a href="#">Level 2</a></li>
<li><a href="#">Level 2</a></li>
<li><a href="#">Level 2</a></li>
<li><a href="#">Level 2</a></li>
<li><a href="#">Level 2</a></li>
</ul>
</li>
<li><a href="#">Level 1</a>
<ul>
<li><a href="#">Level 2</a><ul>
<li><a href="#">Level 3</a>
<ul>
<li><a href="#">Level 4</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Level 1</a>
<ul>
<li><a href="#">Level 2</a></li>
</ul>
</li>
<li><a href="#">Level 1</a></li>
<li><a href="#">Level 1</a></li>
<li><a href="#">Level 1</a></li>
</ul>
</div>
<div class="bottom"></div>