Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2016, 01:33
Avatar de majete
majete
 
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 17 años
Puntos: 2
Exclamación addeventlistener u otro método para actuar en muchos botones

Hola a todos,
Actualmente utilizo una función y un listener para cambiar la "class" de un DIV cuando se pulsa un botón. El mismo está dentro de la DIV, y al pulsar el botón cambia su aspecto.

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     function changeClass()
  3.     {
  4.         var elemento
  5.         /* elemento es el DIV */
  6.         document.getElementById("elemento").className += " best-price";
  7.  
  8.     }
  9.  
  10.     window.onload = function()
  11.     {
  12.         var radio
  13.         document.getElementById("boton").addEventListener( 'click' , changeClass );
  14.     }
  15.     </script>

El tema es que esto tengo que aplicarlo ahora a 40 elementos DIV y cada uno de ellos tiene 10 botones que actúan de "radiobuttons", por lo que el tema se complica y no quiero meter mucho código. La idea es que es un cuestionario con 40 preguntas (cada una de ellas en un div) y una escala de 10 valores para responder (con botones que hacen de radiobuttons). Quiero hacer que cuando una persona responda a esa pregunta cambie su aspecto para que el usuario vea que ya la ha respondido.
El id de los DIV será id=q1,q2,q3...q40
A los botones id=q1_1,q1_2,q1_3,etc.

¿Qué utilizaríais?

Si utilizo código en cada botón para llamar a una función, como son en total 400 botones igual estoy complicando el asunto. Por ejemplo:

En los botones
Código Javascript:
Ver original
  1. onclick="preguntaRespondida(this)"

En cambio si utilizo el listener de arriba, no sé como hacerlo para que me valga para cualquier botón y capa div. Además no sé si es conveniente y si puede afectar a otros elementos fuera del formulario en el evento "click".

¿Qué me recomendáis? He encontrado varios métodos cada cuál distinto, pero para este caso de 40 divs y 400 botones en total?

Gracias!
JC

Última edición por majete; 24/02/2016 a las 05:12