HTML:простого JQuery выпадающего - clearTimeout, SetTimeout вопросы
<ul class="topnav">
<li><a href="#"><span>One</span></a></li>
<li><a href="#"><span>Two</span></a></li>
<li>
<li><a href="#"><span>Three</span></a></li>
<ul class="subnav">
<li><a href="#">A</a></li>
<li><a href="#">B</a></li>
<li><a href="#">C</a></li>
</ul>
</li>
</ul>
Jquery:
var timeout = null;
$(document).ready(function() {
$("ul.topnav li").mouseover(function() {
if (timeout) clearTimeout(timeout);
$(this).find("ul.subnav").slideDown('fast').show();
}).mouseout(function() {
timeout = setTimeout(closemenu, 500);
});
// sub menu mouseovers keep dropdown open
$("ul.subnav li").mouseover(function() {
if (timeout) clearTimeout(timeout);
}
).mouseout(function() {
timeout = setTimeout(closemenu, 500);
// alert(timeout);
});
// any click closes
$(document).click(closemenu);
});
// Closes all open menus
function closemenu() {
$('ul.subnav:visible').hide();
if (timeout) clearTimeout(timeout);
}
У меня возникли проблемы с тайм-аутом. При использовании, если i mouseover «Three», выпадающее меню остается навсегда. если i mouseover «A», выпадающее меню останется навсегда, но если я навешиваю «B» или что-нибудь ниже, меню закроется на мне. если вы раскомментируете «// alert (timeout)»; он попадает туда для B, (и A), но время ожидания будет иметь значение. почему это? Я думал, что clearTimeout будет игнорировать переменную тайм-аута?
Я пытаюсь работать в существующем меню веб-сайта, поэтому я пытался проложить самый простой маршрут – user210757