javascript - Submenu dissapears -
javascript - Submenu dissapears -
css:
ul.topnav { list-style: none; margin: 0px; padding: 0px; display: inline; } ul.topnav li { position: relative; display: inline; margin: 0px; padding: 0px; } ul.topnav li span.subhover {background-position: center bottom; cursor: pointer;} ul.topnav li ul.subnav { list-style: none; position: absolute; display: none; background-color: black; margin: 0px; padding: 0px; border: 1px solid gray; } ul.topnav li ul.subnav li { width: 170px; margin: 0px; padding: 0px; } html:
<ul class="topnav"> <li><a href="#">home</a></li> <li> <a href="#">tutorials</a> <ul class="subnav"> <li><a href="#">sub nav link</a></li> <li><a href="#">sub nav link</a></li> </ul> </li> </ul> javascript/jquery:
$(document).ready(function() { $("ul.subnav").parent().append("<span>^</span>"); //only shows drop downwards trigger when js enabled (adds empty span tag after ul.subnav*) $("ul.topnav li span").click(function() { //when trigger clicked... //following events applied subnav (moving subnav , down) $(this).parent().find("ul.subnav").slidedown('fast').show(); //drop downwards subnav on click $(this).parent().hover(function() {}, function(){ $(this).parent().find("ul.subnav").slideup('slow'); //when mouse hovers out of subnav, move }); //following events applied trigger (hover events trigger) }).hover(function() { $(this).addclass("subhover"); //on hover over, add together class "subhover" }, function(){ //on hover out $(this).removeclass("subhover"); //on hover out, remove class "subhover" }); }); the menu show when <span>^</span> clicked, moment want select sub item, menu dissapears.
what happens you're no longer hovering so
$(this).parent().hover(function() {}, function(){ $(this).parent().find("ul.subnav").slideup('slow'); //when mouse hovers out of subnav, move }); this beingness called. have set invisible div behind nav of whatever size see fit, utilize .mouseout() phone call .slideup().
javascript jquery html css
Comments
Post a Comment