Я реплицировал свою проблему здесь - jsfiddle.JQuery - Mouseleave не работает
На мышеловке эффект обратного одушевления просто исчезает.
Я думаю, что это имеет какое-то отношение к свойству «display», но я не уверен, как это разрешить. Я думаю, причина в том, что это происходит из-за «отображения: блок» при наведении, но затем он возвращается для отображения: нет?
Если я затем принудительно нажимаю «display: block» на элемент подменю, он отображает все параметры подменю одновременно.
HTML
<nav>
<ul class="level-2">
<li class="has-child"> <a href="/clients/">Clients</a>
<ul class="sublevel level-3 submenu">
<li class="nav-item"> <a href="/clients/test1/">Test1</a> </li>
</ul>
</li>
<li class="has-child"> <a href="/services/">Services</a>
<ul class="sublevel level-3 submenu">
<li class="nav-item"> <a href="/services/test2/">Test2</a> </li>
</ul>
</li>
</ul>
</nav>
JQuery
$(document).ready(function() {
$('.level-2 li').on({
mouseenter: function() {
$('.submenu').stop().animate({ 'margin-left':"300px" }, 1000);
},
mouseleave: function() {
$('.submenu').stop().animate({ 'margin-left':"-200px" }, 1000);
}
});
});
http://jsfiddle.net/arunpjohny/cks5bc9L/1/ –
Спасибо любезно Арун, что имело смысл :) – Madness