We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 36446
    • 184 Posts
    Hi!
    I use this Mega Dropdown Menu http://forums.modx.com/thread/89514/wayfinder-mega-menu-for-revo-based-on-the-jquery-dropdown-by-soh-tanaka#dis-post-492203 that uses the Jquery Hover Intend Plugin that works pretty well on a "normal" Computer.

    Here's the Jquery:
    <script type="text/javascript">
    $(document).ready(function() {
    	
    
    	function megaHoverOver(){
    		$(this).find(".sub").stop().fadeTo('fast', 1).show();
    			
    		//Calculate width of all ul's
    		(function($) { 
    			jQuery.fn.calcSubWidth = function() {
    				rowWidth = 0;
    				//Calculate row
    				$(this).find("ul").each(function() {					
    					rowWidth += $(this).width(); 
    				});	
    			};
    		})(jQuery); 
    		
    		if ( $(this).find(".row").length > 0 ) { //If row exists...
    			var biggestRow = 0;	
    			//Calculate each row
    			$(this).find(".row").each(function() {							   
    				$(this).calcSubWidth();
    				//Find biggest row
    				if(rowWidth > biggestRow) {
    					biggestRow = rowWidth;
    				}
    			});
    			//Set width
    			$(this).find(".sub").css({'width' :biggestRow});
    			$(this).find(".row:last").css({'margin':'0'});
    			
    		} else { //If row does not exist...
    			
    			$(this).calcSubWidth();
    			//Set Width
    			$(this).find(".sub").css({'width' : rowWidth});
    			
    		}
    	}
    	
    	function megaHoverOut(){ 
    	  $(this).find(".sub").stop().fadeTo('fast', 0, function() {
    		  $(this).hide(); 
    	  });
    	}
    
    
    	var config = {    
    		 sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
    		 interval: 100, // number = milliseconds for onMouseOver polling interval    
    		 over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
    		 timeout: 500, // number = milliseconds delay before onMouseOut    
    		 out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
    	};
    
    	$("ul#topnav li .sub").css({'opacity':'0'});
    	$("ul#topnav li").hoverIntent(config);
    
    
    
    });
    </script>


    Now i am trying to figure out how this menu could be used on mobile devices where there is no hover event. Can anyone help me on adding a click event to this menu? Couldn't be that hard but i have no idea how to do it :-d

    My attemped didn't work at all because there are 2 Problems:

    1.Maybe my Jquery is just wrong
    2. If i click on a toplink the page get's redirected to a page...

    Here's what i have tried so far....
    <script>
    $(document).ready(function(){
    $("ul#topnav li").click(itwasaclick);
    });
    
    function itwasaclick() {
    $("ul#topnav li .sub").css({'opacity':'1'});
    });
    </script>



    Thank you very much for every hint!
    [ed. note: flanger last edited this post 10 years, 1 month ago.]
      https://www.beautyislife-shop.de - premium make-up!
      https://www.topsterne.de - sell it here!
      ---------------------------------------------------------
      • 4172
      • 5,888 Posts
      there are some responsive megamenues out there.
      For example one for bootstrap:

      http://geedmo.github.io/yamm3/#
        -------------------------------

        you can buy me a beer, if you like MIGX

        http://webcmsolutions.de/migx.html

        Thanks!