I think what you are trying to do is to move the next li
to further right and then show the ul
which is inside the current li
overlay.mouseenter(function() {
var $li = $(this);
$li.next().stop(true, true).animate({'margin-left':0},400, function() {
$li.find('ul').show();
});
});
overlay.mouseleave(function() {
var $li = $(this);
$li.next().stop(true, true).animate({'margin-left':-30}, function() {
$li.find('ul').hide();
});
});
Demo: Fiddle