6
respostas

[BUG] ListaDeTeclas is not defined

Quando tento botar "listaDeTeclas" no console, ele fala mostra o seguinte erro: VM49:1 Uncaught ReferenceError: listaDeTeclas is not defined at :1:1

Quando cliquei no "anonymous" mostrou uma parte que so tinha o texto do erro e o Index.

aqui está o codigo "main.js" e o index:

function tocaSomPom() { document.querySelector('#som_tecla_pom').play();

}

const listaDeTeclas = document.querySelectorAll('.tecla');

<!DOCTYPE html>
<title>Alura MIDI</title>

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600&display=swap" rel="stylesheet">

<link rel="icon" type="image/png" href="images/bateria.png">
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/estilos.css">
<h1>Alura Midi</h1>

<section class="teclado">
    <button class="tecla tecla_pom">Pom</button>
    <button class="tecla tecla_clap">Clap</button>
    <button class="tecla tecla_tim">Tim</button>

    <button class="tecla tecla_puff">Puff</button>
    <button class="tecla tecla_splash">Splash</button>
    <button class="tecla tecla_toim">Toim</button>

    <button class="tecla tecla_psh">Psh</button>
    <button class="tecla tecla_tic">Tic</button>
    <button class="tecla tecla_tom">Tom</button>
</section>

<audio  src="sounds/keyq.wav" id="som_tecla_pom"></audio>
<audio  src="sounds/keyw.wav" id="som_tecla_clap"></audio>
<audio  src="sounds/keye.wav" id="som_tecla_tim"></au_splash"></audio>
<audio  src="sounds/keyd.wav" id="som_tedio>
<audio  src="sounds/keya.wav" id="som_tecla_puff"></audio>
<audio  src="sounds/keys.wav" id="som_teclacla_toim"></audio>
<audio  src="sounds/keyz.wav" id="som_tecla_psh"></audio>
<audio  src="sounds/keyx.wav" id="som_tecla_tic"></audio>
<audio  src="sounds/keyc.wav" id="som_tecla_tom"></audio>


<script src="main.js"></script>
6 respostas

Olá Lucas, tudo bem?

Pelo que pude observar no seu código, você está tentando acessar a constante "listaDeTeclas" no console, mas está recebendo um erro de referência. Isso pode estar acontecendo porque a constante "listaDeTeclas" está declarada dentro da função "tocaSomPom", ou seja, ela só existe dentro do escopo dessa função.

Para acessar a constante "listaDeTeclas" fora da função, você precisa declará-la fora da função, no escopo global do arquivo "main.js".

Você pode fazer isso movendo a declaração da constante "listaDeTeclas" para fora da função "tocaSomPom", logo após a declaração da função.

Dessa forma, o código ficaria assim:

function tocaSomPom() {
    document.querySelector('#som_tecla_pom').play();
}

const listaDeTeclas = document.querySelectorAll('.tecla');

// Restante do código

Espero ter ajudado e bons estudos!

Bom dia Renan, continua com o mesmo bug, e fui olhar meu código novamente e a constante "listaDeTeclas" já estava fora da função, até copiei o código para ver se dava algo de diferente mas o erro ainda persiste.

Compartilha o seu código JavaScript completo por gentileza?

Cola ele aqui mesmo, é melhor para analisar ele completo.

compartilha o link do github ou o codigo para ajudarmos ou melhor para o renan ajudar e eu pegar a resposta para entender tambem kkkk

function tocaSomPom() { document.querySelector('#som_tecla_pom').play(); }

const listaDeTeclas = document.querySelectorAll('.tecla');

// Restante do código

Tem que ser o código completo, para ver as iterações do While ou for, como você está utilizando o querySelectorAll vem uma lista de elementos então precisa desses loops, pode colar o código completo aqui, copia do arquivo inteiro e cola ele aqui, não tem problema.