Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/03/2016, 09:47
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Visible y ocultar div

El problema con tu ejemplo es que intentas acceder a la instancia de la función constructora Alert mediante JavaScript inline, es decir, incrustado en HTML. No es reconocida porque no fue creada en el mismo alcance. E incluso si hicieras la declaración de dicha variable con la instancia, tendrías que añadir a la función misma por cada botón; es por esta y otras razones que hace mucho tiempo que no se recomiendas trabajar con JS incrustado en HTML.

Para poder acceder a la misma, necesitas hacerlo en el mismo espacio del código JS. Como todos los botones de respuesta ejecutan la misma función, enviándole cada una un valor distinto, puedes delegar el evento click a la sección en la que se encuentra todo, para lo cual sería recomendable asignarle un identificador, y las respuestas serían los valores de cada botón.

Código HTML:
Ver original
  1. <section id="quiz">
  2.     <div class="pregunta">
  3.         <li>
  4.             <input type="radio" value="Respuesta 1" />a. Respuesta
  5.         </li>
  6.     </div>

Código Javascript:
Ver original
  1. var section = document.querySelector("#quiz");
  2. section.addEventListener("click", function(event){
  3.     if (event.target.type == "radio"){
  4.         Alert.render(event.target.value);
  5.     }
  6. }, false);

Mediante la propiedad target del objeto del evento, se puede acceder al elemento directamente afectado por el evento. Una vez comprobado que se trata de un radio button, pasas a invocar al método Alert.render() pasándole como argumento el valor de la respuesta. El evento también puede ser delegado a otro elemento ancestro, por ejemplo, al documento.

Y para la obtención de la sumatoria de las respuestas correctas e incorrectas, necesitas dos variables para acumular ambas cantidades y, cuando verifiques que la respuesta selecciona es correcta o incorrecta, sumas un 1 a la respectiva variable acumuladora.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand