Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

AddEventListener não serve?

Na aula o professor usa certo código para selecionar um elemento de id navbar, mas eu queria entender por que não é possível utilizar o método que aprendi no curso de javascript (pre-requisito desse).

Código que o instrutor usa, e funciona no meu site:

$('#navbar').on('show.bs.collapse', function () {
    console.log('funcionando');
})

dessa maneira toda vez que a navbar é colapsada a mensagem funcionando aparece no console.

O código baseado no método que aprendido curso anterior:

var navbar = document.querySelector("#navbar");

navbar.addEventListener('show.bs.collapse', function () {
    console.log('funcionando com outro metodo');
})

Esse script já não funciona como esperado. Eu verifiquei pelo console, e a variável navbar tem o mesmo valor que a query $('#navbar') retornatia, a div a ser colapsada.

Não há nenhum erro no console.

Desde já agradeço!

1 resposta
solução!

Não funciona como esperado pois é um evento customizado do próprio Bootstrap :

"O Bootstrap fornece eventos personalizados para as ações exclusivas da maioria dos plugins. Geralmente, eles vêm em uma forma de particípio passado e infinitivo - onde o infinitivo (ex. Show) é acionado no início de um evento, e sua forma de particípio passado (ex. Mostrado) é acionada na conclusão de uma ação.

Todos os eventos infinitivos fornecem a funcionalidade preventDefault (). Isso fornece a capacidade de interromper a execução de uma ação antes que ela seja iniciada. Retornar false de um manipulador de eventos também chamará preventDefault () automaticamente."

Segue link para mais informações, é só ir na parte de "Events" : Bootstrap