$(document).ready(function() { $("ul li:has(div.subMenu)").addClass("subArrow"); function megaHoverOver(){ $(this).find(".subMenu").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(".rows").length > 0 ) { // If rows class exists... var biggestRow = 0; //Calculate each row $(this).find(".rows").each(function() { $(this).calcSubWidth(); //Find biggest row if(rowWidth > biggestRow) { biggestRow = rowWidth; } }); //Set width $(this).find(".subMenu").css({'width' :biggestRow}); $(this).find(".rows:last").css({'margin':'0'}); } else { //If row does not exist... $(this).calcSubWidth(); //Set Width $(this).find(".subMenu").css({'width' : rowWidth}); } } function megaHoverOut(){ $(this).find(".subMenu").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.sf-menu li div.subMenu").css({'opacity':'0'}); $("ul.sf-menu li").hoverIntent(config); });