Хорошо, у меня есть скрипт выпадающего меню. Это работает нормально, когда все нажатия происходят в самом меню, но когда я щелкаю по меню, раскрывающийся список не закрывается. Я хочу, чтобы меню закрывалось, если пользователь щелкает где-то на экране, который не является фактическим меню.
Я попытался добавить код:
document.onclick = ddMenu_close;
Но тогда это делает меню никогда не открывающимся, потому что оно вызывает «open» через функцию, но затем сразу закрывает его, потому что оно затем вызывает onclick ddMenu_close. Мой скрипт ниже:
<script type="text/javascript">
function ddMenu() {
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function ddMenu_open(e)
{
ddMenu_close();
var submenu = $(this).find('ul');
if(submenu){
ddmenuitem = submenu.css('visibility', 'visible');
}
}
function ddMenu_close()
{ if(ddmenuitem) ddmenuitem.css('visibility', 'hidden'); }
function ddMenu_timer()
{ closetimer = window.setTimeout(ddMenu_close, timeout); }
function ddMenu_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
$(document).ready(function()
{ $('#ddMenu > li').bind('click', ddMenu_open);
$('#ddMenu li ul').bind('click', ddMenu_timer);
});
}
</script>
Так что мне нужно добавить что-то в этот скрипт, которое закроет раскрывающийся список при нажатии на герцогство или окно, но не будет мешать нажатию в меню или раскрывающемся меню. Спасибо за любую помощь.