jQuery: sub and subsubmenu don't slideup???

Discussion in 'jQuery' started by 123GoToAndPlay, Dec 8, 2009.

  1. #1
    Hi all,

    I am trying to add a submenu and subsubmenu to this slidingmenu example
    http://www.i-marco.nl/weblog/jquery-accordion-menu/

    my jquery code is
    
    function initMenus() {
    	$('ul.menu ul').hide();
    	$.each($('ul.menu'), function(){
    		$('#' + this.id + '.expandfirst ul:first').show();
    	});
    	$('ul.menu li a').click(
    		function() {
    			var checkElement = $(this).next();
    			var parent = this.parentNode.parentNode.id;
    			alert("sub: "+parent);
    			if($('#' + parent).hasClass('noaccordion')) {
    				$(this).next().slideToggle('normal');
    				return false;
    			}
    			if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
    				if($('#' + parent).hasClass('collapsible')) {
    					$('#' + parent + ' ul:visible').slideUp('normal');
    				}
    				return false;
    			}
    			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
    				$('#' + parent + ' ul:visible').slideUp('normal');
    				checkElement.slideDown('normal');
    				return false;
    			}
    		}
    	);
    	//*//sub sub
    	$('ul.menu ul.menu ul ').hide();
    	$.each($('ul.menu'), function(){
    		$('#' + this.id + '.expandfirst ul:first').show();
    	});
    	$('ul.menu ul.menu li a').click(
    		function() {
    			var checkElement = $(this).next();
    			var parent = this.parentNode.parentNode.parentNode.id;
    			alert("subsub: "+parent);
    			if($('#' + parent).hasClass('noaccordion')) {
    				$(this).next().slideToggle('normal');
    				return false;
    			}
    			if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
    				if($('#' + parent).hasClass('collapsible')) {
    					$('#' + parent + ' ul:visible').slideUp('normal');
    				}
    				return false;
    			}
    			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
    				$('#' + parent + ' ul:visible').slideUp('normal');
    				checkElement.slideDown('normal');
    				return false;
    			}
    		}
    	);
    	
    	//*/
    	//*//sub sub sub
    	$('ul.menu ul.menu ul.menu ul ').hide();
    	$.each($('ul.menu'), function(){
    		$('#' + this.id + '.expandfirst ul:first').show();
    	});
    	$('ul.menu ul.menu ul.menu li a').click(
    		function() {
    			var checkElement = $(this).next();
    			var parent = this.parentNode.parentNode.parentNode.parentNode.id;
    			alert("subsubsub: "+parent);
    			if($('#' + parent).hasClass('noaccordion')) {
    				$(this).next().slideToggle('normal');
    				return false;
    			}
    			if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
    				if($('#' + parent).hasClass('collapsible')) {
    					$('#' + parent + ' ul:visible').slideUp('normal');
    				}
    				return false;
    			}
    			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
    				$('#' + parent + ' ul:visible').slideUp('normal');
    				checkElement.slideDown('normal');
    				return false;
    			}
    		}
    	);
    	
    	//*/
    	
    }
    $(document).ready(function() {initMenus();});
    
    Code (markup):
    but it doesn't slide the submenu's up.

    Any tips?
     
    123GoToAndPlay, Dec 8, 2009 IP