Имам следното меню:
А този JS кара .submenu да изкача, когато е посочен елемент от менюто.
Проблемът идва от защрихованата в червено зона. Това е част от .submenu, но не и от съдържащите се в него header и ul списък. Работата е там, че .submenu покрива съседния елемент от менюто и когато го посоча при отворено подменю няма реакция, а съответно би трябвало подменюто да изчезне и да се покаже другото, ако има такова.
Най-странното е, че единствено в IE9 се получава търсеният ефект, но не и в другите браузъри.
Може би трябва да се наблюдава друг елемент за mouseleave?
Код:
<nav>
<ul class="clear">
<li><a href="#">Меню1</a></li>
<li>
<a href="#">Меню2</a>
<section class="submenu">
<header><a href="#">Меню2</a></header>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
</ul>
</section>
</li>
<li>
<a href="#">Testimonails</a>
<section class="submenu">
<header><a href="#">Меню3</a></header>
<ul>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
</ul>
</section>
</li>
<li><a href="#">Меню4</a></li>
<li><a href="#">Меню5</a></li>
</ul>
</nav>
Код:
$(document).ready(function() {
$('#header nav ul > li').bind('mouseenter', openSubMenu);
$('#header nav ul > li').bind('mouseleave', closeSubMenu);
function openSubMenu() {
$(this).find('.submenu').fadeIn(100);
};
function closeSubMenu() {
$(this).find('.submenu').fadeOut(100);
};
});
Най-странното е, че единствено в IE9 се получава търсеният ефект, но не и в другите браузъри.
Може би трябва да се наблюдава друг елемент за mouseleave?