[ Foro de Javascript ]

Le di un evento a un boton pero al hacer click no pasa nada

15-Jan-2021 23:03
Invitado (Analia)
0 Respuestas

Hola les comparto este código que hice, ya que estoy aprendiendo JS, la situación es que le agregue a un boton una escucha de un evento pero cuando hago click no hace nada, desde le agradezco a quien me pueda ayudar:
HTML
<!DOCTYPE html>
<html>
<head>
<title>Cofla 11</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="cofla_11.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@500&display=swap" rel="stylesheet">

</head>
<body>

<div class="container-materias">
<div class="titulos-materias">Materias</div>
<div class="titulos-notas">Notas</div>
<button class="boton">Solicitar promedio</button>

</div>
<script type="text/javascript" src="cofla_11.js"></script>

</body>
</html>

Js:
const materiasHTML = document.querySelector(".container-materias");  
const boton= document.querySelector(".boton");

const materias=[ {
nombre: "Introducción a la ingenieria",
nota: 9
},{
nombre: "Matematica I",
nota: 7
},{
nombre: "Quimica básica",
nota: 6
},{
nombre: "Física I",
nota: 8
},{
nombre: "Calculo matematico",
nota: 7
},{
nombre: "Analisis matematico",
nota: 6
},{
nombre: "Robotica",
nota: 8
}];

const obtenerMateria=(id)=>{
return new Promise((resolve, reject)=>{
let materia = materias[id]; // creo la variable materia donde se va a cargar lo que figura en el id
if(materia == undefined) reject("La materia no existe");
else setTimeout(()=>{resolve(materia)}, Math.random()*400);
})
}

const devolverMaterias = async()=>{
let materia = [];
for(let i=0; i< materias.length; ++i){
materia[i]= await obtenerMateria(i);
let newHTMLCode = `
<div class="materias">${materia[i].nombre}</div>
<div class="notas">${materia[i].nota}</div>`
materiasHTML.innerHTML += newHTMLCode;
}
}
devolverMaterias();

boton.addEventListener("click",(e)=>{
alert("Hice click en un boton");
});




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)