Problema con AJAX (enlaces internos)

Leunamal

Hola, tengo una página web donde se carga el contenido de manera dinámica. Al pulsar los enlaces se carga la página que hay en los href en un DIV.

Hasta ahí bien, el problema reside en que si el documento cargado dinámicamente posee enlaces, si pulso en ellos se me abriran en una página nueva en vez de cargarse en el mismo sitio que la página dinámica. He estado buscando en google, pero nada. No he conseguido la solución ni la explicación de todo porqué sucede esto.

¿Puede ser porque el código de ajax se carga antes de que se cargase todo el contenido dinámico? He probado con ejemplos sin utilizar jquery y sucede lo mismo. Las páginas de los enlaces no se cargan en el mismo sitio que la página dinámica.

¿Debo utilizar una función distinta a esta?

$(document).ready(function()
{
   (carga-fichero)
    ....
});

¿Alguien sabría como solucionarlo?

Un saludo

NeB1

no sé si es lo que quieres...

 $(document).ready(function()
 {
     $(".enlace_dinamico").click(function(e){
        e.preventDefault(); //Con esto evitas que se ejecute el href
        /*CODIGO PARA CARGAR MEDIANTE AJAX LA PAGINA.  con this.id tienes la ID del enlace que se ha pulsado, lo cual da mucho juego, por ejemplo, la id puede ser el archivo de donde se va a sacar los datos o algo así */
     });

 }); 
<a href="tusitio" class="enlace_dinamico" id="enlace1"> asasdasd</a>

Leunamal

#2 Hola, gracias por responder.

Acabo de hacer una prueba con lo que has puesto y sigue sucediendo lo mismo. Cargar dinámicamente el fichero lo consigo, el problema está en que una vez cargada esas páginas dinámicas. Si hay enlaces y pulso en ellos en vez de abrirse en el div destinado para cargar páginas dinámicas lo que hace es abrirse en una web a parte.

Yo he seguido este ejemplo:
http://www.yensdesign.com/tutorials/contentajax/

Que puede descargarse aquí:
http://www.hellogoogle.com/examples/contentajax/accesiblecontentajax.rar

Si poneis en una de esas páginas un enlace a la otra, vereis que al pulsar en los enlaces se abre en una página distinta. Yo pensaba que esto sería como los frames.

A ver si consigo arreglarlo.

Saludos

Leunamal

Problema solucionado. Para que se pueda ejecutar código con AJAX en las páginas dinámicas se necesita un nuevo plugin de jquery. Se necesita el livequery.

Pongo el manual:
http://docs.jquery.com/Plugins/livequery#Overview

Se baja de aquí:
http://plugins.jquery.com/project/livequery

La verdad es que para ser algo tan importante no sé porque no está más difundido esto. He encontrado la solución de casualidad. Espero que este post le sirva a alguien.

Usuarios habituales

  • Leunamal
  • NeB1