Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] pierde identificacion en un ciclo

Estas en el tema de pierde identificacion en un ciclo en el foro de Javascript en Foros del Web. Hola a todos comento mi problema: lo q necesito es la creaciacion automatica de n botones, y que al darle click a un boton, este ...
  #1 (permalink)  
Antiguo 24/10/2013, 08:54
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
pierde identificacion en un ciclo

Hola a todos comento mi problema:

lo q necesito es la creaciacion automatica de n botones, y que al darle click a un boton, este consulta la base de datos y con respecto a ello, lleva esta información a otro campo. Todo va muy bien, cuando asigno manualmente cada botón: asi:


Código PHP:
while ($fila = mysql_fetch_array($resultado, MYSQL_NUM)) {
    ?><boton1><input type="button" <? echo "id=boton$i value=$fila[0] class='boton' ";?> ></boton1>
<br><?

$i
++;
    }
Código HTML:
var x;
var boton=new Array();
x=$(document);
x.ready(inicio);

function inicio(){
	for (i=0; i<9; i++){
	    boton[i]=$("#boton"+i);
	}


       boton[2].click(function(){
		pulsado=2;
		calcular2(pulsado);
	});

	boton[8].click(function(){
		pulsado=8;
		calcular2(pulsado);
	});
De esta forma funciona perfectamente, pero solo con el boton 2 y 8.
ahora cuando agrego esto:

Código HTML:
function inicio(){
	for (i=0; i<9; i++){
	    boton[i]=$("#boton"+i);
	}

	for (m=0; m<9; m++){
           boton[m].click(function(){
		pulsado=m;
		calcular2(pulsado);
	    });
	}
Siempre me muestra el boton 9 que puedo hacer!! espero q me puedan ayudar gracias!
  #2 (permalink)  
Antiguo 24/10/2013, 09:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: pierde identificacion en un ciclo

use var para declarar variables.

use funciones anónimas para reiniciar los closures en los ciclos que llaman a eventos.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/10/2013, 09:26
 
Fecha de Ingreso: junio-2010
Mensajes: 168
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: pierde identificacion en un ciclo

HOla, ya encontre la solución y es esta:

función anónima para poder conservar el valor del javascript. sería de la siguiente manera:

var i=0;
while(i<=50){
(function(val) // Función anónima para conservar el valor
{
$('#boton' + val).click(function(){
alert(val);}
);
})(i);
i++;
}

La público ya q alguien más se le puede presentar el mismo inconveniente
  #4 (permalink)  
Antiguo 24/10/2013, 10:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: pierde identificacion en un ciclo

ojalá todos los usuarios fueran como usted, + karma por aplicar correctamente las indicaciones, espero verlo aportando pronto, saludos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: funcion, input, pierde
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:22.