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

Duvida: Definindo os parâmetros para as funções.

Olá! Tudo bem com vocês? Espero que sim :) No gabarito do exercicio ta o seguinte código:

 tecla.onkeydown = function (evento) {
    if(evento.code === "Enter" || evento.code === "Space") {
    tecla.classList.add('ativa');
    }
  }
  tecla.onkeyup = function () {
    tecla.classList.remove('ativa');
  }

A minha dúvida é: Por que na função de quando apertamos o botão recebe um parâmetro e na função de quando soltamos o botão, não atribuimos. Analisando o código, eu tenho a noção do que ta acontecendo, porém, não faço a minima idéia de QUANDO atribuir e o POR QUE de atribuir os parâmetros.

4 respostas

Olá Bruno, tudo certo?

Todas as funções de evento recebem esse primeiro parâmetro que é um objeto com dados sobre o evento, ai você coloca esse parâmetro na função quando você quer fazer alguma coisa com o evento, tipo essa primeira função que você adiciona a classe ativa quando a tecla é enter ou espaço.

Não sei se deu pra entender muito, mas espero ter ajudado! Qualquer dúvida só mandar uma mensagem no fórum ai que vo tentar responder

Maycon, boa tarde! Obrigado por responder, e eu acho que entendi com sua explicação. Vamos lá...

O parâmetro que declaramos como "evento", ele serve para armazenar as propriedades do evento onkeydown, é isso? E com esse parâmetro eu consigo acessar todas os dados, tipo o code, keycode e etc desse evento.

E mais uma coisinha, nesse caso, eu declaro o parametro porque há várias teclas com que eu possa trabalhar, e no caso do onclick, eu não preciso declarar porque eu só posso trabalhar com o click do botão esquerdo. É isso?

solução!

Exatamente, mas esse parâmetro evento você não tem só informações sobre a tecla, tem diversas outras informações como posição do mouse (quando é evento relacionado ao mouse) e etc. Nessa documentação aqui https://www.w3schools.com/jsref/dom_obj_event.asp você consegue ver tudo que o evento.algumaCoisa pode te fornecer

E todos os eventos passa esse parâmetro para a função, no caso do onkeyup você so omitiu ele pois não precisava dele mas se você quiser você pode tranquilimente fazer isso

tecla.onkeyup = function (evento) {
    if(evento.altKey){ // So vai remover a classe "ativa" se ao levantar tecla a tecla ALT esteja pressionada
        tecla.classList.remove('ativa');
    }
}

Entendi, Maycon.

Muito obrigado pela sua explicação e pelo seu tempo em pleno domingo kk Tenha uma ótima semana!