Ну так вы создаете таймер по событию ухода, в него вешаете функцию по закрытию, получаете intervalID=settimeout(500, func)
Дальше, грубо говоря, заводите массив, в него загоняете intervalID + func. Если окончательно ушли, через 0.5 секунды таймер вам меню свернет, массив почистит ваша func. Если же пришли на другой элемент, то чистим таймауты через cleanInterval и исполняем функции сразу, массив чистим.
Массив, а не переменные, на случай, если пользователь нервный и быстро мышку двигает.
Визуально будет как надо.
|