У меня есть этот код:
$("a.shownav").on("click", function(){
$("div.nav").slideToggle();
});
И когда я нажимаю на другие части страницы, кроме части div.nav
, я хочу, div.nav
часть div.nav была нажата. Я пробовал это, но он не работает:
if ($("div.nav").is(":visible")){
$("*").not("div.nav").on("click", function(){
$("div.nav").slideUp();
});
}
Как я могу достичь того, чего хочу?
Вы можете обработать событие щелчка документа, получить целевой объект, а затем проверить, является ли он навигационным div или дочерним элементом навигационного div. Если это не один из двух, вы можете закрыть его.
$(document).on("click", function(e){
var targ = $(e.target);
if (!targ.hasClass("nav") && targ.parents(".nav").length < 1) {
$("div.nav").slideUp();
}
});