Foros del Web » Programando para Internet » Javascript »

link dentro de div no llama a funcion js

Estas en el tema de link dentro de div no llama a funcion js en el foro de Javascript en Foros del Web. Hola, Desde un link llamo a una funcion que deja visible a un div Ese div contiene un link que llama a la funcion que ...
  #1 (permalink)  
Antiguo 18/10/2007, 17:05
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Pregunta link dentro de div no llama a funcion js

Hola,
Desde un link llamo a una funcion que deja visible a un div
Ese div contiene un link que llama a la funcion que lo oculta.
El problema es que en IE ese lnk no me funciona pero en FF si.
Alguien sabe que puede estar pasando?

Aqui les dejo el codigo:


Cita:
<script language="javascript">
function oculta(){
document.getElementById('imagen').style.visibility ="hidden";
}
function muestra(){
document.getElementById('imagen').style.visibility ="visible";
var x;
x="<a href='#' onclick='oculta()'>cerrar div</a>";
picture.innerHTML = x;
}

</script>
.
.
.
<body>
<center><a href="#" onclick="muestra()">show div</a></center>
<div id="imagen" style="visibility: hidden; "><div id='picture'></div></div>
</body>
  #2 (permalink)  
Antiguo 19/10/2007, 03:14
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: link dentro de div no llama a funcion js

A ver si así...
Código:
<html>
<head>
<script language="javascript">

function esta(a){
return document.getElementById(a);
}

function accion(e){

esta('imagen').style.visibility =e;

capa=(e=="hidden")?"picture":"mostrar";
capa2=(e!="hidden")?"picture":"mostrar";

esta(capa).style.visibility ="hidden";
esta(capa2).style.visibility ="visible";

}


</script>
<style>
#imagen{
width:200px;
height:250px;
border:solid 1px black;
background:silver;
visibility: hidden;
}
</style>
	<title>Untitled</title>
</head>

<body>
	<center>
		<a href="#" id="mostrar" onclick="accion('visible');return false">show div</a>

		<div id="imagen">

			<img src="http://www.karlankas.net/karlankas.jpg" />
			
			<div id='picture'>
				<a href='#' onclick="accion('hidden');return false">cerrar div</a>
			</div>
		</div>
	</center>
</body>
</html>
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 23/10/2007, 10:22
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Re: link dentro de div no llama a funcion js

Gracias KarlanKas, funciona a las mil maravillas.

Traté de seguir el codigo para entenderlo, pero hubo una parte que no entendí. Podrías explicarme que hacen estas lineas por favor??
Cita:
capa=(e=="hidden")?"picture":"mostrar";
capa2=(e!="hidden")?"picture":"mostrar";
Saludos y gracias nuevamente
  #4 (permalink)  
Antiguo 23/10/2007, 10:28
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: link dentro de div no llama a funcion js

No veas lo que me alegra que digas eso.

La fórmula que dices es un if... else reducido. Viene a ser algo así:

capa=(e=="hidden")?"picture":"mostrar";

if(e=="hidden"){
capa="picture"
}
else{
capa="mostrar"
}

Es decir:
variable=(condicion)?valor si se cumple la condición:valor si no se cumple la condición;

En el script lo que hace es elegir la capa que se enseña y la capa que se oculta a cada momento. Ya que la capa2 será la que luego se vea y la capa1 será la que se oculte.

¿Me he explicado?
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 24/10/2007, 15:04
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Re: link dentro de div no llama a funcion js

más claro hecharle agua!! y eso que soy medio duro de cuesco, pero al final entendi

Me asalta otra duda..
Tengo una funcion que parametricamente carga una imagen en un innerhtml, y lo que estoy tratando de hacer es que mientras carga la imagen me cargue un "loading.gif". La idea es la de siempre, que muestre el cargando, pero que cuando carge la imagen correspondiente, el "loading" desaparezca.

Este es el codigo (espero no andar tan perdido)

Cita:
function muestra(img){
var x;
x="<table width='100%' height='100%' border='0'><tr><td align='center' >";
x+="<table bgcolor='white' cellspacing='10'><tr><td><div style='position: static;'><img src='imagenes/loading.gif'></div>";
x+="<img src='" + img + "' border='0'><br><br>";
x+="</td></tr></table>" ;
x+="</td></tr></table>";
picture.innerHTML = x;
}
  #6 (permalink)  
Antiguo 25/10/2007, 01:31
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: link dentro de div no llama a funcion js

Para eso lo mejor tal vez sea crear una imagen oculta que precargue las imágenes. Algo así:
Código:
<html>
<head>
<script language="javascript">

function esta(a){
return document.getElementById(a);
}

function accion(e){

esta('imagen').style.visibility =e;

capa=(e=="hidden")?"picture":"mostrar";
capa2=(e!="hidden")?"picture":"mostrar";

esta(capa).style.visibility ="hidden";
esta(capa2).style.visibility ="visible";


}
temporale="https://marketplace.slizone.com/SliMarketplace/Images/loading.gif";
function cargar(imagen){

esta("destino").src=temporale;
setTimeout("accion('visible')",500);
esta("temporal").src=imagen;  
}

</script>
<style>
#temporal{
display:none;
}
#imagen{
overflow:show;
border:solid 1px black;
background:white;
visibility: hidden;
}
</style>
	<title>Untitled</title>
</head>

<body>
	<a href="#" onclick="cargar('http://www.wallpaperbase.com/wallpapers/celebs/adrianeartiles/adriane_artiles_2.jpg');return false;">Ver chica guapa 1</a>	<br>
		<a href="#" onclick="cargar('http://www.wallpaperbase.com/wallpapers/celebs/adrianeartiles/adriane_artiles_6.jpg');return false;">Ver chica guapa 2</a>	<br>
		<a href="#" onclick="cargar('http://www.wallpaperbase.com/wallpapers/celebs/adrianeartiles/adriane_artiles_4.jpg');return false;">Ver chica guapa 3</a>	<br>
		
	<center>
		<a href="#" id="mostrar" onclick="accion('visible');return false">show div</a>

		<div id="imagen">

			<img name="destino" id="destino" src="http://www.butterflytmsport.com.ar/images/no_image.jpg" />
			
			<div id='picture'>
				<a href='#' onclick="accion('hidden');return false">cerrar div</a>
			</div>
		</div>
	</center>


<img 	name="temporal" 
		id="temporal" 
		src="" 
		onload="document.images['destino'].src=this.src;" 
		onerror="http://www.butterflytmsport.com.ar/images/no_image.jpg"/>
</body>
</html>
Dime si es lo que quieres. Y perdona si las imágenes son demasiado sugerentes.... (trialorololooo) pero son las únicas imágenes grandes grandes que he encontrado para que veas lo que hace en la tardanza.

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 25/10/2007, 13:47
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Re: link dentro de div no llama a funcion js

Es precisamente lo que te preguntaba.
A pesar de que el codigo me da un error al cargarlo por primera vez (line 67, error de sintaxis), funciona perfecto. Una observación al respecto es que al darle click por primera vez a un enlace que cargue una foto, aparece "Imagen No Disponible" y luego la del "Loding", del segundo click en adelante solo aparece el "Loading".
Por otra parte, implementé una solución bastaaaaante primitiva (pero al menos efectiva, no me pidas más..) para el código que te habia puesto más arriba. No es tan elaborada ni tan buena como la que me has presentado, pero me gustaria que la miraras:

Cita:
function muestra(img){
var x;
x="<table width='100%' height='100%' border='0'><tr><td align='center' >";
x+="<table bgcolor='white' cellspacing='10'><tr><td><div style='position: absolute;'><img src='loading.gif'></div>";
x+="<div style='position: relative;'><img src='" + img + "' border='0'></div><br><br>";
x+="</td></tr></table>" ;
x+="</td></tr></table>";
picture.innerHTML = x;
}
O sea, lo logré con 2 miserables divs.

En IE funciona bien (me muestra el loading y luego la foto encima), en FF me muestra el icono de imagen del "loading" y luego me muestra la segunda imagen encima.
El único detalle que tiene es que como la carga es tan rápida, en FF no me alcanza a mostrar la imagen del "loading". Revisando el codigo que tu creaste, vi que usas el settimeout para hacer una delay entre las fotos. La pregunta es: es posible implementarlo en mi roca-codigo?

Cita:
function muestra(img){
var x;
x="<table width='100%' height='100%' border='0'><tr><td align='center' >";
x+="<table bgcolor='white' cellspacing='10'><tr><td>"
x+=<div style='position: absolute;'><img src='loading.gif'></div>";
// aqui un settimeout -->
x+="<div style='position: relative;'><img src='" + img + "' border='0'></div><br><br>";
x+="</td></tr></table>" ;
x+="</td></tr></table>";
picture.innerHTML = x;
}
PD: No conocía al bombón de las fotos... por un momento dejé de pensar en la gestora de mis poluciones nocturnas llamada Veronica Zemanova :P
  #8 (permalink)  
Antiguo 29/10/2007, 07:59
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Re: link dentro de div no llama a funcion js

arriba!!
(no quiero quedarme con la duda)
  #9 (permalink)  
Antiguo 29/10/2007, 08:41
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: link dentro de div no llama a funcion js

El settimeout lo pongo para que no aparezca el icono de no hay imágen. Para dar tiempo a cargarse la nueva imagen. En tu caso... no es necesario si se carga rápido la imagen...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #10 (permalink)  
Antiguo 29/10/2007, 09:05
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Re: link dentro de div no llama a funcion js

pues quizás no es necesario, pero igual quiero saber como se hace.. :$
  #11 (permalink)  
Antiguo 30/10/2007, 13:34
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Re: link dentro de div no llama a funcion js

no hay quorum?
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 08:50.