Foros del Web » Programando para Internet » Javascript »

pasarle el iterador como parámetro a una funcion en un addEventListener

Estas en el tema de pasarle el iterador como parámetro a una funcion en un addEventListener en el foro de Javascript en Foros del Web. hola muy buenas, estoy teniendo un problema en una parte de mi codigo que es algo asi: for(var i=0;i<array.length;i++) { var boton=document.createElement("input"); boton.setAttribute("type","button"); boton.addEventListener("click",function(){funcionU sada(i)}); ...
  #1 (permalink)  
Antiguo 21/11/2015, 09:05
 
Fecha de Ingreso: noviembre-2015
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Exclamación pasarle el iterador como parámetro a una funcion en un addEventListener

hola muy buenas, estoy teniendo un problema en una parte de mi codigo que es algo asi:
for(var i=0;i<array.length;i++)
{
var boton=document.createElement("input");
boton.setAttribute("type","button");
boton.addEventListener("click",function(){funcionU sada(i)});
}
y la i me la acaba poniendo como queda al final del for, es decir, si el length del array es 4, queda como 4, ¿como podria pasarle a la funcionUsada la posicion correcta?
  #2 (permalink)  
Antiguo 21/11/2015, 09:13
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: pasarle el iterador como parámetro a una funcion en un addEventListener

Una forma es usar bind:

Código Javascript:
Ver original
  1. boton.addEventListener("click", nombreFuncion.bind(null,i));
  #3 (permalink)  
Antiguo 21/11/2015, 14:20
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: pasarle el iterador como parámetro a una funcion en un addEventListener

en lugar de usar la sentencia for, usa el método forEach()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: addeventlistener, funcion, input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.