Проблема, с которой вы сталкиваетесь, заключается в селекторе JQuery, который вы используете в своих функциях наведения. Когда вы используете "li.backLava"
в функции «unhover», вы говорите любым элементам списка с классом «backLava», чтобы они показывались снова, поэтому отслеживающий LI появляется снова, когда подменю скрывает.
Чтобы заставить его работать так, как вы хотите, нам просто нужно уточнить код, чтобы скрыть только родительский элемент отслеживания LI. Поэтому вместо использования "li.backLava"
используйте что-то более конкретное:
$("#top_menu ul li ul").hover(
function(){
//Find this sub-menu's parent list, and hide the tracking LI.
$($(this).parents("ul")[0]).children("li.backLava").hide();
},
function(){
//Find this sub-menu's parent list, and show the tracking LI again.
$($(this).parents("ul")[0]).children("li.backLava").show();
}
);
ПРИМЕЧАНИЕ: Этот код не проверен, но он должен работать или работать с небольшими изменениями.
EDIT
Я обновил код теперь, когда увидел вашу демо и то, что вы хотите. Обновленный код должен делать то, что вы хотите.