Tema: listener
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2011, 16:38
IEKK
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
listener

Hola.
Mi duda es la siguiente:
Quise obtener el índice de elemento al que le hago click según se recoja en el array al hacer el getElementsByName.

... Pensé que al hacer el for y obtener la variable i podría sacar si había hecho clic en el elemento 0,1,2 ... etc, pero siempre obtengo la longitud máxima del array.

Es obvio que hago algo mal, pero pensaba que algo tan tonto como esto no requeriría más. Estoy espeso

Simplifico el código y dejo lo esencial por si no me expliqué correctamente.

Código HTML:
<input type="radio" name="rd" /> <br />
<input type="radio" name="rd" /> <br />
<input type="radio" name="rd" /> <br />
<input type="radio" name="rd" /> <br />

<script type="text/javascript">

function addListener(element, type, expression){
	if(element.addEventListener)
		element.addEventListener(type, expression, false);
	else if(element.attachEvent)
		element.attachEvent('on'+type, expression);
	else return false;
}

var obj = document.getElementsByName('rd');

function addEvent(){
	/*for(var i in obj)*/
    for(i=0; i<obj.length; i++)
        addListener(obj[i], 'click', function(){alert(i);}); // no muestra 0,1,2,3 sino siempre 4
}
window.onload = addEvent;

</script> 
Espero que alguien pueda decirme que es lo que no estoy teniendo en cuenta.
Un saludo.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(