Stas-ik, 
	Еще раз: - Перенесите открытие темного фона по наведению(.mouseenter/mouseleave) на родитель!! (<div class="menuholder"> или <ul class="menu slide">) На li только квадраты с инвентарем! )без фона  | 
	
		
 Это при наведении 
	
function openMenu(){
	$('.back').animate({"height":"500px"},'1000');
}
$('.menuholder').mousenter(function(){
	timeout = setTimeout(openMenu, 500);
});
$('.menuholder').mouseleave(clearTime(function(){
	clearTimeout(timeout);
}),500);
Это по клику: <div class="menuholder" onclick(openMenu());>...</div> 
function openMenu(){
	$('.back').animate({"height":"500px"},'1000');
}
function closeMenu(){
	$('.back').animate({"height":"0px"},'1000');
}
$('.menuholder').mouseleave(closeMenu());
Ну и измените с учётом правок Deff  | 
	
		
 Sober_exe, 
	Сделано не верно - фон должен быть при наведении на само меню, а не на конкретный пункт у Вас же он убирается при переходе с пункта на пункт(а курсор находиться в меню Т.е анимации две 1. Для наведения на контейнер с Li = показываем тёмный фон 2. При наведении на конкретный Li - открываем ивентарь(фона там у же нет, он открыт на родителе)  | 
	
		
 Deff, я не влезал в то КАК это должно отображаться, а показал как написать скрипт, если не тупо копипастить, то схема понятна и поменять на своё. Я даже дописал, что с учётом правок ваших. 
	 | 
	
		
 
$('.listdelay').click(function(){
        $(this).addClass('onhover2').addClass('onhover');
    })
    $('.listdelay').hover(
        function(){
            var List = $(this);
            $(this).addClass('onhover2');
            setTimeout(function(){
                if ( List.hasClass("onhover2") ) {
                    List.addClass('onhover');
                }
            }, 300);
        },
        function(){
            var List = $(this);
            List.removeClass('onhover');
            List.removeClass('onhover2');
        });
соответстственно, показ нужного элемента можно сделать так: .onhover.onhover2 div{ display :block; }  | 
| Часовой пояс GMT +3, время: 15:25. |