Hola. Sonará a pregunta boba, pero cómo podría crear variables distintas en un bucle FOR. Por ejemplo:
for (x=0;x<10;x++){
var variable+x = $('boton'+x);
}
Gracias :)
| |||
Duda simple sobre variables Hola. Sonará a pregunta boba, pero cómo podría crear variables distintas en un bucle FOR. Por ejemplo: for (x=0;x<10;x++){ var variable+x = $('boton'+x); } Gracias :) |
| ||||
Respuesta: Duda simple sobre variables Hola Luisfa. Bienvenido al foro. Esto lo aprendía del maestro caricatos (¡Hola! )
Código javascript:
Ver original Saludos, |
| |||
Respuesta: Duda simple sobre variables La respuesta ya la tienes, pero permiteme sugerir una alternativa. ¿Has pensado en utilizar un array?
Código javascript:
Ver original |
| |||
Respuesta: Duda simple sobre variables Gracias Javier, de momento me ha servido, pero he encontrado un nuevo problema. ¿Cambia este modo dentro de una función para llamar a las de fuera? Estoy tratando de pasar este código:
Código:
button1.addEvent('click', function(){ if(content1.getStyle('height').toInt() > 0){ Toggle1.start(0); }else{ Toggle1.start(c1Height); } button1.toggleClass('button1_'); return false; }); ...en este bucle FOR:
Código:
Pero me falla en la sentencia de los IFfor (x=0;x<10;x++){ window ['button'+x].addEvent('click', function(){ if(window ['content' +x].getStyle('height').toInt() > 0){ window ['Toggle'+x].start(0); }else{ window ['Toggle'+x].start(window ['cHeight'+x]); } window ['button' + x].toggleClass('button'+x+'_'); return false; }
Código:
if(window ['content' +x].getStyle('height').toInt() > 0) ¿? Ayuda plis Última edición por Luisfa; 18/11/2008 a las 05:15 |
| |||
Respuesta: Duda simple sobre variables He usado arrays como dices Veckman, pero el problema sigue ahí. Creo que ahora podré exponerlo de una forma más limpia y clara:
Código:
Esto así tal cual funciona bien. Pero metido el addEvent dentro del FOR deja de funcionar:var button = new Array(); var content = new Array(); var Toggle = new Array(); for (x=1;x<lis.length+1;x++){ button[x] = $('button'+x); content[x] = $('contentElement'+x); Toggle[x] = new Fx.Style('contentElement'+x, 'height',{duration: 500}); } button[1].addEvent('click', function(){ if(content[1].getStyle('height').toInt() > 0){ Toggle[1].start(0); }else{ Toggle[1].start(c1Height); } return false; });
Código:
¿Cual es la diferencia? for (x=1;x<lis.length+1;x++){ button[x] = $('button'+x); content[x] = $('contentElement'+x); Toggle[x] = new Fx.Style('contentElement'+x, 'height',{duration: 500}); button[x].addEvent('click', function(){ if(content[x].getStyle('height').toInt() > 0){ Toggle[x].start(0); }else{ Toggle[x].start(c1Height); } return false; }); } |
| |||
Respuesta: Duda simple sobre variables Gracias de nuevo :) Me parece que hay algo que estoy haciendo mal, pero de planteamiento. Con este código:
Código:
al hacer un Alert (a) me dice "10", pulsando cualquiera de los botones.for (x=0;x<10;x++){ button[x] = $('button'+x); content[x] = $('contentElement'+x); Toggle[x] = new Fx.Style('contentElement'+x, 'height',{duration: 500}); button[x].addEvent('click', function(){ var a = x; if(content[a].getStyle('height').toInt() > 0){ Toggle[a].start(0);//hide }else{ Toggle[a].start(height[a]);//show } return false; }); content[x].setStyle('display','block'); height[x] = content[x].getSize().scrollSize.y; } Yo lo que quería era asignarle a cada boton su función independiente, para actuar en sus respectivas capas, pero al meterla en el FOR supongo que estaré haciéndolo mal, no? ¿Tendría que sacarla de ahí? ¿Como le doy acada boton su funcion propia usando un bucle? (el numero de botones no es fijo, depende del numero de noticias, por eso necesito que sea dinamico y automatico) |
| |||
Respuesta: Duda simple sobre variables Reduje el código y queda así:
Código:
for (x=0;x<10;x++){ button[x] = $('button'+x); content[x] = $('contentElement'+x); Toggle[x] = new Fx.Style('contentElement'+x, 'height',{duration: 500}); } button[1].addEvent('click', function(){ if(content[1].getStyle('height').toInt() > 0){ Toggle[1].start(0); }else{ Toggle[1].start(content[1].getSize().scrollSize.y); } return false; }); Es más, así también funciona:
Código:
Lo único que queda es aplicar esa función addEvent del botón a todos los botones del array Button. ¿Cómo podría hacer eso?for (x=1;x<lis.length+1;x++){ button[x] = $('button'+x); content[x] = $('contentElement'+x); Toggle[x] = new Fx.Style('contentElement'+x, 'height',{duration: 500}); } for(i=1;i<button.length;i++){ if(content[i].getStyle('height').toInt() > 0){ Toggle[i].start(0); }else{ Toggle[i].start(content[i].getSize().scrollSize.y); } } Gracias de antemano Última edición por Luisfa; 18/11/2008 a las 08:37 |
| |||
Respuesta: Duda simple sobre variables WOa, perdona. Debía de estar dormido. Ignora lo de arriba. Una solución es esto:
Código javascript:
Ver original Si lo prefieres, para que quede más fácil de entender. La solución puede quedar:
Código javascript:
Ver original |