Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida Menu Responsivo.

Esse é o meu código:

$('.menu-abrir').on('click', function() {
    $('html').addClass('menu-ativo');
});

$('.menu-fechar').on('click', function() {
    $('html').removeClass('menu-ativo');
});

$('html').on('click', function(event) {
    if (event.target === document.documentElement) {
        $(this).removeClass('menu-ativo');
    }
});

Ele está funcionando normal. A unica coisa que eu não entendi foi o fato de não funcionar dentro do IF o $('html') ou $(this), funcionando somente o "document.documentElement". Gostaria que alguém me tirasse esta dúvida.

2 respostas
solução!

É pq o event.target devolve um objeto dom puro. Aí vc tem que comparar com o objeto dom correspondente, não com o objeto jQuery que viria se chamar $.

Ou vc embrulha o event.target num objeto jQuery e faz a comparação com jQuery. Seria outra forma tbm...

Tentei fazer deste jeito só que não funcionou.

$('.menu-abrir').on('click', function() {
    $('html').addClass('menu-ativo');
});

$('.menu-fechar').on('click', function() {
    $('html').removeClass('menu-ativo');
});

$('html').on('click', function(event) {
    if ($(event.target) === $('html')) {
        $(this).removeClass('menu-ativo');
    }
});