Foros del Web » Programando para Internet » Jquery »

Problema Jquery no me toma un valor string

Estas en el tema de Problema Jquery no me toma un valor string en el foro de Jquery en Foros del Web. Por que la siguiente linea no me anda Código: foto="2.jpg"; case 1:$(".widget .mid img").attr("src", foto); //porque no me inserta el valor "2.jpg" si despues de ...
  #1 (permalink)  
Antiguo 22/03/2009, 20:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 8 meses
Puntos: 2
Pregunta Problema Jquery no me toma un valor string

Por que la siguiente linea no me anda
Código:
foto="2.jpg";
case 1:$(".widget .mid img").attr("src", foto);	//porque no me inserta el valor "2.jpg"
si despues de esta linea hago un alert del atributo , me pone como que el dato se inserto, pero a la hora de mostarme la imagen en pantalla es como si no lo tomara.

y esta si:

Código:
$(".widget .mid img").attr("src","4.jpg");
  #2 (permalink)  
Antiguo 23/03/2009, 02:33
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Jquery no me toma un valor string

¿Y ese case:1 que hay ahí? ¿Puedes poner todo el trozo de código entero y no sólo esa línea? (La función, el bloque...)
  #3 (permalink)  
Antiguo 23/03/2009, 04:29
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 8 meses
Puntos: 2
Pregunta Respuesta: Problema Jquery no me toma un valor string

Código:
$(".siguiente").click(function() {

	var actual= $(".widget img").attr("src");   
	var vector=["1.jpg","2.jpg","3.jpg","4.jpg"]; 
	
	i=0;
	encontro=false;
	while( (encontro==false) &&  (i<=vector.length) ){
			i++;
			if(vector[i]==actual) encontro=true;
	}

		switch(i){

		case 1:
		$(".widget .mid img").attr("src","3.jpg");
		$(".widget .mid img").attr("title","Titulo3");
		break;
		case 2:
		$(".widget .mid img").attr("src","4.jpg");
		$(".widget .mid img").attr("title","Titulo4");
		break;
		case 3:$(".widget .mid object").attr("data","http://www.youtube.com/v/QmfjTNA0kVU");
		cambiarModo("video");
		break;
		
		default:
		alert('aqui');
		cambiarModo("foto");
		$(".widget .mid img").attr("src","2.jpg");
		$(".widget .mid img").attr("title","Titulo2");
		break;

		}
	document.getElementById('nombreFoto').innerHTML=$(".widget .mid img").attr("title"); 
	
    });
  #4 (permalink)  
Antiguo 23/03/2009, 05:15
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Jquery no me toma un valor string

Y en ese código, ¿cuál es el que no te funciona?
  #5 (permalink)  
Antiguo 23/03/2009, 06:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 8 meses
Puntos: 2
Pregunta Respuesta: Problema Jquery no me toma un valor string

Ese codigo asi como esta anda, el problema es que si yo tengo 50 jpg voy a tener que hacer 50 case, por eso quiero hacerlo de una forma general para la cual necesitaria que esto ande:

Código:
foto="2.jpg";
case 1:$(".widget .mid img").attr("src", foto);
sino no puedo hacerlo de una forma global, y por cada foto tendria que agregar un case.
  #6 (permalink)  
Antiguo 23/03/2009, 06:35
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Jquery no me toma un valor string

Claro, pero veamos...

Si pones el código que funciona, no puedo ver el problema, porque el código funciona. Correcto?

Ahora, si pones sólo esas dos líneas de código, entonces no tiene sentido porque ese "case 1:" no pinta nada ahí. Correcto también?

Entonces, pon el código que estás intentando hacer que funcione. El que NO funciona, pero entero, no sólo esas dos líneas.

:)
  #7 (permalink)  
Antiguo 23/03/2009, 06:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 8 meses
Puntos: 2
Pregunta Respuesta: Problema Jquery no me toma un valor string

Aca está el cogido completo que no anda. :(

Código:
$(".siguiente").click(function() { /*Control del boton Siguiente*/

	if( ($(".visible").attr("name") ) == "esFoto") {
	var actual= $(".widget img").attr("src");
	var vector=["1.jpg","2.jpg","3.jpg","4.jpg"]; 
	
		i=0;
		encontro=false;
		while( (encontro==false) &&  (i<=vector.length) ){
				i++;
				if(vector[i]==actual) encontro=true;
		}
	}
	else i=0 ;

	foto=actual;
	$(".widget .mid img").attr("src",foto);
	alert($(".widget .mid img").attr("src")); //me imprime el nombre correcto,pero sin embargo la foto nose muestra
	
    });
  #8 (permalink)  
Antiguo 23/03/2009, 07:12
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Jquery no me toma un valor string

Necesitaría ver la página, pero bueno... alguna cosa que podrías probar es:

1. Declara actual fuera del if:

Código javascript:
Ver original
  1. //...
  2.     var actual = ""; // O el valor por defecto que necesites
  3.     if( ($(".visible").attr("name") ) == "esFoto") {
  4.         actual= $(".widget img").attr("src");
  5.         var vector=["1.jpg","2.jpg","3.jpg","4.jpg"];  
  6. //...

2. No he visto el HTML, así que tengo alguna pregunta:
- $(".widget .mid img"): Sólo hay una imagen ahí? Quiero decir, hay una única imagen que responde a ".widget .mid img"?
- $(".widget img"): Sólo hay una imagen ahí? Quiero decir, hay una única imagen que responde a ".widget img"?

3. ¿Por qué usas la variable foto? QUe yo vea no aporta nada, ¿no? Quítala y:

Código javascript:
Ver original
  1. $(".widget .mid img").attr("src",actual);

4. Tampoco veo que todo el bucle ese que haces sirva para nada en particular. Quiero decir, haces el bucle buscando i, pero luego no usas i para nada (ni tampoco encontrado)...
  #9 (permalink)  
Antiguo 23/03/2009, 07:28
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Problema Jquery no me toma un valor string

Ya lo he solucionado, el problema era que el subindice i, lo tenia que hacer string si lo usar como vector[i].

Grx!!!
  #10 (permalink)  
Antiguo 23/03/2009, 07:30
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Jquery no me toma un valor string

Eh? O.o?

Bueno, si te funciona...
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 17:52.