SlideUp при нажатии на контент

0

У меня есть этот код:

$("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();
    });
}

Как я могу достичь того, чего хочу?

Теги:
jquery-mobile
slidetoggle
slidedown
slideup

1 ответ

1
Лучший ответ

Вы можете обработать событие щелчка документа, получить целевой объект, а затем проверить, является ли он навигационным div или дочерним элементом навигационного div. Если это не один из двух, вы можете закрыть его.

$(document).on("click", function(e){
    var targ = $(e.target);
     if (!targ.hasClass("nav") && targ.parents(".nav").length < 1) {
        $("div.nav").slideUp();
    }
});

DEMO

  • 0
    Спасибо за это. Работал на меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню