Foros del Web » Programando para Internet » Jquery »

problema jquery hide/show

Estas en el tema de problema jquery hide/show en el foro de Jquery en Foros del Web. Buenas, Llevo muy poco tiempo programando y tengo un problema, creo que bastante básico, pero que me trae de cabeza. Tengo un código muy simple: ...
  #1 (permalink)  
Antiguo 04/11/2009, 11:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
problema jquery hide/show

Buenas,

Llevo muy poco tiempo programando y tengo un problema, creo que bastante básico, pero que me trae de cabeza.

Tengo un código muy simple: dos botones y dos fotos.

El código es:

$(document).ready(init);

function init(){

$('.foto2').hide();
$('.foto1').show();
$('.opcion1').click(muestra1);
$('.opcion2').click(muestra2);
}

function muestra1(){
$('.foto2').hide();
$('.foto1').show();
}

function muestra2(){
$('.foto1').hide();
$('.foto2').show();
}

¿El problema? Pues que aparecen las dos fotos en pantalla a la vez, durante una milésima de segundo, antes de hacer caso a hide. Supongo que es por tema de navegadores, puesto que en local no ocurre.

Mi pregunta: ¿hay alguna forma de hacer que hide funcione antes de cargar el html para evitar que salgan en pantalla ambas durante un segundo?

He estado probando mil cosas con window.load, function, etc., he rebuscado en foros pero no tengo mucha idea y no he conseguido solucionar el problema.


Si alguien puede echarme un cable..
Gracias!
  #2 (permalink)  
Antiguo 04/11/2009, 11:26
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Respuesta: problema jquery hide/show

oculta la imagen con CSS desde el principio.

Código:
.foto1{display:none;}
saludos y suerte
  #3 (permalink)  
Antiguo 04/11/2009, 11:29
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema jquery hide/show

ready se ejecuta al completar el DOM, por eso en línea se retraza y no en localhost, lo que debes hacer es establecer directamente las propiedades con CSS antes de recurrir a javascript:

Código:
.foto2,
.foto1{
display:none;/*o usas visibility:hidden; (uno de dos)*/
}
  #4 (permalink)  
Antiguo 04/11/2009, 13:45
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: problema jquery hide/show

Exacto lo que te dicen: CSS soluciona las cosas.

De no tener esa alternativa podes probar el codigo ...
$('.foto2').hide();
... justo despues de declarar la foto en html, en vez de en el header.

Pero no veo por que ensuciar las cosas asi. Usa CSS.
  #5 (permalink)  
Antiguo 04/11/2009, 15:04
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: problema jquery hide/show

Cita:
Iniciado por mayid Ver Mensaje
Exacto lo que te dicen: CSS soluciona las cosas.

De no tener esa alternativa podes probar el codigo ...
$('.foto2').hide();
... justo despues de declarar la foto en html, en vez de en el header.

Pero no veo por que ensuciar las cosas asi. Usa CSS.
con css es mejor, todo depende de la carga del DOM, en algunos navegadores esto si serviría
  #6 (permalink)  
Antiguo 05/11/2009, 03:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: problema jquery hide/show

Muchas gracias!

Funciona perfectamente, con la de vueltas que había dado..

En CSS había probado con overflow hidden pero me fallaba por otro lado.
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 13:04.