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

Não teria que passar o event como argumento também ?

No exercício a resposta correta é:

<html>
  <head></head>
  <body>
    <button onclick="contadorController.incrementar()">Incrementar</button>
    <script src="ContadorController.js"></script>
    <script>
        let contadorController = new ContadorController();
    </script>
  </body>
</html>

Porém eu acredito que o correto seria passar o event como parametro na chamado do método incrementar.

<button onclick="contadorController.incrementar(event)">Incrementar</button>
11 respostas

Oi Maison tudo bem?

Mas porque passar o event também?

Porque só vai incrementar, não vai pegar nada como qual botão foi clicado ou posição do mouse.

Oi André no primeiro vídeo em 03:30 do primeiro vídeo da aula o instrutor usa o event no onsubmit, por isso fiquei com essa dúvida, só precisamos do event quando vamos pegar que botão, ou posição ? Porque foi utilizado em onsubmit e onclick não ?

Desde já agradeço

Ah tem esse caso também, que ele vai usar para prevenir o evento do formulário de dar submit (que eu particularmente não gosto de usar srsrsrsrs então nem lembro que existe rsrsrs).

E outra coisa pode você colocar o vídeo da aula no fórum? Dá pra assistir a aula deslogado dessa forma. Não é melhor colocar o link da aula ?

PS: Se colocasse no onclick, toda vez que clicassem em qualquer parte do formulário ia disparar a função.

Beleza obrigado pelo toque, já retirei o link do vídeo, Mas estou me referindo ao exemplo do exercício onde o evento está associado a um botão e não ao form, estou desconfiado que sempre passamos event, mesmo que não coloquemos como parametro.

Se você quiser passar o evento pode passar.

Mas nesse caso do contadorController.incrementar() se você passar o evento vai fazer o que com ele?

Veja que o evento é o onclick dentro do onclick tem várias propriedades como posição do mouse, se foi clicado com ctrl segurado ou não e por aí vai. Se você não for aproveitar nenhuma não precisa por.

Já no caso do vídeo o evento é o onsubmit que deve ter o nome do formulário a ser submetido e outras coisas que não sei de cabeça.

Acho que entendi a sua dúvida. Deixa eu fazer uns testes.

Fiz esses pedaços de código

function testeEvento(){console.log(Event)};
botao=document.createElement("button");
botao.setAttribute("onclick","testeEvento()");
botao.innerText="clique";
document.body.appendChild(botao);

Nesse primeiro eu pensei que tava pegando um Event que fosse algo global do javascript mas veio uma função nada haver.

function testeEvento(event){console.log(event)};
botao=document.createElement("button");
botao.setAttribute("onclick","testeEvento(event)");
botao.innerText="clique";
document.body.appendChild(botao);

Já no segundo ele pega o evento onclick com sucesso porque passei pela função.

function testeEvento(qualquer){console.log(qualquer)};
botao=document.createElement("button");
botao.setAttribute("onclick","testeEvento(qualquer)");
botao.innerText="clique";
document.body.appendChild(botao);

Nesse terceiro teste nem roda porque o javascript não sabe o que significa qualquer

solução!

Fiz mais um teste caro colega!


function testeEvento(){console.log(event)};
botao=document.createElement("button");
botao.setAttribute("onclick","testeEvento()");
botao.innerText="clique";
document.body.appendChild(botao);

Nesse teste não passei o evento e mesmo assim logou ele no console.log então nem precisa passar o evento.

É claro que javascript tem muitos pormenores não sabemos se vai funcionar sempre pra todos eventos, ou se era assim no momento da gravação do vídeo.

Obrigado André.

Disponha, tamo junto!!! Bons estudos!!!