jQuery(document).ready(function($){ // $("ul.topnav>li>ul.subnav").parent().append(""); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*) $("ul.topnav>li>span").click(function() { //When trigger is clicked... //Following events are applied to the subnav itself (moving subnav up and down) $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click $(this).parent().hover(function() { }, function(){ $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up }); //Following events are applied to the trigger (Hover events for the trigger) }).hover(function() { $(this).addClass("subhover"); //On hover over, add class "subhover" }, function(){ //On Hover Out $(this).removeClass("subhover"); //On hover out, remove class "subhover" }); $("ul.topnav li>ul li").hover(function(){ console.log('h in'); var self=this; var pos=$(this).offset(); if( ($(window).width()-pos.left-680)>0){ $(this).find(">ul.subnav").show("slide", { direction: "left" }, 100, function(){ $(self).parent().find('ul.subnav:visible').each( function(index,element){ if (!$.contains(self,element)){ console.log('hide'); $(element).hide(); } }); } ); }else{ $(this).find(">ul.subnav").css('left','-342px'); $(this).find(">ul.subnav").show("slide", { direction: "right" }, 100, function(){ $(self).parent().find('ul.subnav:visible').each( function(index,element){ if (!$.contains(self,element)){ console.log('hide'); $(element).hide(); } }); } ); } }, function(e){ var pos=$(this).offset(); if(( ($(window).width()-pos.left-680)>0)){ $(this).find(">ul.subnav").hide("slide", { direction: "left" }, 100, function(){ $(self).parent().find('ul.subnav:visible').each( function(index,element){ if (!$.contains(self,element)){ console.log('hide'); $(element).hide(); } }); }); }else{ $(this).find(">ul.subnav").hide("slide", { direction: "right" }, 100); } } ); $("ul.topnav>li>a").addClass('normal'); $("ul.topnav>li>a").hover(function() { //When trigger is clicked... $(this).addClass("active"); $(this).removeClass('normal'); var link=$(this); //Following events are applied to the subnav itself (moving subnav up and down) $(this).parent().find(">ul.subnav").slideDown('fast').show(); //Drop down the subnav on click $(this).parent().hover(function() { }, function(){ $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up link.removeClass('active'); link.addClass('normal'); }); //Following events are applied to the trigger (Hover events for the trigger) }).hover(function() { $(this).addClass("subhover"); //On hover over, add class "subhover" }, function(){ //On Hover Out $(this).removeClass("subhover"); //On hover out, remove class "subhover" }); $( "ul.topnav>li li" ).has('ul').find('>a').append(">"); $( "ul.subnav li:last-child").css('border-bottom','0px'); });