Escoger al azar los elementos de la matriz en el evento click no funciona

0

Pregunta

He escrito alguna pregunta generador de funciones que funcionan bien. A continuación, poner esas funciones en un array, cuando el usuario hace clic en el nuevo botón de pregunta se supone que debe elegir al azar el tipo de pregunta de la matriz, pero es sólo la aleatoriedad cuando se carga la página en lugar de hacer clic en el botón. Gracias de antemano.

let questionArray =[questionTypeZero, questionTypeOne];
function questionSelector(){
   return questionArray[Math.floor(Math.random()*2)]
};
window.addEventListener('load', questionSelector());
newQuestion.addEventListener('click', questionSelector() );
arrays event-handling events function
2021-11-20 08:44:22
1

Mejor respuesta

0

usted tiene que cambiar esta línea:

newQuestion.addEventListener('click', questionSelector() );

tiene que ser de esta manera:

newQuestion.addEventListener('click', questionSelector);

haciendo de la manera que usted hizo es como: en el momento en el JS va en que la línea de código que se llame a la función, porque de la (), en la forma en que me indican que será llamado cuando el evento.

también en esta línea de código

window.addEventListener('load', questionSelector());

havo para eliminar la (), porque es callign la función cuando el motor de JS es en esa línea de código, NO cuando la ventana está cargado.

No estoy seguro sobre el evento de "carga" en ese caso yo suelo usar 'DOMContentLoaded'

mu línea de código como este:

window.addEventListener('DOMContentLoaded', questionSelector);
2021-11-20 09:08:02

He intentado eso pero ahora no hay duda de que está apareciendo en todos.
John Yates

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................