Лучшим вариантом может быть использование тайм-аута вместо .hover ()
$(document).ready(function() {
var t; // This will be a timeout
$('#toggleh1').mouseover(function() {
if (t)
{
clearTimeout(t);
}
$('.header2').slideDown(400);
}).mouseout(function() {
t = setTimeout(function() {
$('.header2').slideUp(400);
}, 500); // .5 second delay before hiding
});
$('.header2').mouseover(function() {
if (t)
{
clearTimeout(t);
}
}).mouseout(function() {
t = setTimeout(function() {
$('.header2').slideUp(400);
}, 500); // .5 second delay before hiding
});
});
Для дальнейшего объяснения, когда вы наводите курсор мыши на элемент триггера, показывается div.Когда ваша мышь покидает триггерный элемент, браузер запускает обратный отсчет .5 секунд.Если он достигнет конца этого обратного отсчета, div будет скрыт.Если до того, как закончится обратный отсчет, вы наведите курсор мыши на триггер ИЛИ на сам div, обратный отсчет будет остановлен.Если ваша мышь покидает div, обратный отсчет будет начат снова.
Обратите внимание, что вы можете поиграть с .mouseover () против .mouseenter () и .mouseout () против .mouseleave()