Foros del Web » Programando para Internet » Jquery »

Jquery y actualizaciones dinámicas de contenido de un Div

Estas en el tema de Jquery y actualizaciones dinámicas de contenido de un Div en el foro de Jquery en Foros del Web. Primero que todo hola a todos. Acabo de registrarme en el foro, a ver si podéis echarme una mano. Tengo una lista <ul> con un ...
  #1 (permalink)  
Antiguo 25/05/2012, 02:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Jquery y actualizaciones dinámicas de contenido de un Div

Primero que todo hola a todos.

Acabo de registrarme en el foro, a ver si podéis echarme una mano.

Tengo una lista <ul> con un elemento <li>

Código:
<ul id="nav">
     <li><a href="test.htm">Leer</a></li>
</ul>
Y dispongo de un div vacío

Código:
<div id="show"></div>
La idea es cargar en el div SHOW, el documento "test.htm".

Para ello, dispongo de la siguiente función de la librería Jquery

Código:
<script type="text/javascript">
	$(document).ready(function(){
		  $("#nav a").each(function(){
			 var href = $(this).attr("href");
			 $(this).attr({ href: "#"});
			 $(this).click(function(){
			 $("#show").load(href);
		         });
	           });
	});
</script>
Hasta aquí todo correcto, al hacer click en el link de la lista, carga correctamente el documento en el div SHOW.

Mi consulta y duda viene ahora.

Quiero cargar por ejemplo un elemento <li> nuevo dentro de la lista.

Para ello, dispongo de otra función de la librería Jquery.

Código:
<script type="text/javascript">
	$(document).ready(function(){
		$("#testAdd").each(function(){
			$(this).click(function(){
				$("#nav").append("<li><a href=\"test2.htm\">Añadido</a></li>");
			});
		});
	});
</script>
Creo un link para probar la función

Código:
<a id="testAdd" href="#">Añadir</a>
Me dispongo a probarlo, y parece que funciona, ya que se crea el nuevo link "Añadido" dentro de la lista, pero aquí viene la duda.

Ese nuevo link, cuando le das, en vez de cargar el contenido dentro del Show como el anterior, lo abre como un link normal.

¿Alguien sabe cuál puede ser el problema?¿Por que lo abre como un link normal, en vez de cargarlo dentro del show como el que ya está en el código?

Gracias.

Última edición por TheDawn; 25/05/2012 a las 03:58
  #2 (permalink)  
Antiguo 25/05/2012, 15:35
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Jquery y actualizaciones dinámicas de contenido de un Div

Buenas,

La respuesta es sencilla.

Esto ocurre porque no está enlazado el evento click al nuevo enlace. Es decir, el código que se encarga de convertir en enlace en un código que carga la página dentro de un div sólo se ejecuta sobre los enlaces que están en el código cuando se ejecuta el script.

Cuando añades un enlace de manera dinámica, no estás volviendo a ejecutar ese código para que se escuche al evento click del nuevo enlace.

Se me ocurre que puedes hacer algo así:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.           $("#nav a").each(function(){
  3.              var href = $(this).attr("href");
  4.              $(this).attr({ href: "#"});
  5.              $(this).click(function(){                
  6.              $("#show").load(href);            
  7.                  });
  8.                });
  9.    
  10.  
  11. $("#testAdd").click(function(){
  12.    
  13.     nuevo = $("<li><a href=\"test2.htm\">Añadido</a></li>");  
  14.  
  15.     enlace = $('a',nuevo);
  16.    
  17.       var href = enlace.attr("href");
  18.              enlace.attr({ href: "#"});
  19.              enlace.click(function(){          
  20.                  $("#show").load(href);              
  21.                  });
  22.     $("#nav").append(nuevo);  
  23.     });
  24. });

Si tienes dudas de algo, no dudes en preguntar.

Saludos

Última edición por alexg88; 25/05/2012 a las 15:42
  #3 (permalink)  
Antiguo 28/05/2012, 12:53
 
Fecha de Ingreso: mayo-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Jquery y actualizaciones dinámicas de contenido de un Div

Gracias por la respuesta. Mañana lo probaré y te comentaré como me ha ido.

Muchas gracias por perder tu tiempo en mi consulta. Un saludo.
  #4 (permalink)  
Antiguo 29/05/2012, 00:27
 
Fecha de Ingreso: mayo-2012
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Jquery y actualizaciones dinámicas de contenido de un Div

Funciona perfectamente.

Muchas gracias Alex.

Etiquetas: append, load
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:28.