I've build a drop down menu at:
http://www.ourbridalsongs.com/new_header/header.php
When you click on the up/down arrow next to the logo - the menu appears - I'd like to make it disappear when clicking anywhere else on the screen - for some reason it's getting stuck and doesn't slide back up.
Can anyone help resolve this!
Here's my script:
$(document).ready(function () {
$("ul.subnav").parent().append("");
$("ul.topnav li span").click(function () {
$(this).parent().find("ul.subnav").slideDown('slow').show();
$(this).parent().click(function () {}, function () {
$(this).parent().find("ul.subnav").slideUp('slow');
});
}).hover(function () {
$(this).addClass("subhover");
}, function () {
$(this).removeClass("subhover");
});
});
Thanks!!!
добавьте этот фрагмент в свой код
$(document).click(function(e){
var myTarget = $(".subnav");
var clicked = e.target.className;
if($.trim(myTarget) != '') {
if($("." + myTarget) != clicked) {
$("ul.subnav").slideUp('slow').hide();
}
}
});
, это закроет ваш ul.subnav
, когда вы щелкнете в любом месте документа.
Это довольно просто: привязать функцию, которая скрывает это меню, ко всему, кроме этого меню. Для этого привяжите слушателя click к элементу body
, как он везде, также привяжите слушателя click к меню - последний должен просто предотвратить выполнение первый.
$("body").click(function() {
$("#services-container-id").hide();
});
$("#services-container-id").click(function(e) {
e.stopPropagation();
});