Quite literally I just did this for someone else. Use this and adapt your code around it:
JS Fiddle Demo
HTML:
<ul class="menuHead">
<li class="title">Menu #1
<ul class="menu">
<li>Menu #1 - Link #1</li>
<li>Menu #1 - Link #2</li>
</ul>
</li>
<li class="title">Menu #2
<ul class="menu">
<li>Menu #2 - Link #1</li>
<li>Menu #2 - Link #2</li>
</ul>
</li>
</ul>
jQuery:
$(document).ready(function () {
$(".menuHead").on('click mouseenter mouseleave', '> li', function (evt) {
var e = evt || window.event;
switch (e.type || e.which) {
case "click":
if (!($(this).find('.menu').hasClass('stayOpen'))) {
$('.stayOpen').fadeOut('fast').removeClass('stayOpen');
$(this).find('.menu').addClass('stayOpen');
} else {
$(this).find('.menu').fadeOut('fast').removeClass('stayOpen');
}
break;
case "mouseenter":
$(this).find('.menu').not('.stayOpen').fadeIn('fast').addClass('open');
break;
case "mouseleave":
$(this).find('.menu').not('.stayOpen').fadeOut('fast').removeClass('open');
break;
default:
break;
}
});
});
CSS:
.title {
width: 150px;
display: inline-block;
position: relative;
}
.menu {
width: 300px;
top: 100%;
position: absolute;
display: none;
}
.open,
.stayOpen {
display: block;
}
He never accepted as an answer so maybe you'll make better use of it. Here's his post