Foros del Web » Programando para Internet » Jquery »

función load() jquery , rellamada a la misma capa

Estas en el tema de función load() jquery , rellamada a la misma capa en el foro de Jquery en Foros del Web. Hola a todos, antes de nada quiero dar las gracias de antemano por el simple hecho de leer el post. Estoy tratando de cargar una ...
  #1 (permalink)  
Antiguo 12/03/2012, 05:16
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Ubicación: Sevilla
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta función load() jquery , rellamada a la misma capa

Hola a todos, antes de nada quiero dar las gracias de antemano por el simple hecho de leer el post.
Estoy tratando de cargar una página en una capa con la funcion load de jquery, hasta ahí todo perfecto.
El problema viene cuando una vez cargada la página en la capa, quiero hacer un enlace de la pagina cargada y que se vuelva a visualizar en la misma capa.

Ejemplo:
Al pulsar Enlace 1 me carga una pagina en una capa llamada #mostrar.
Y dentro de la página contiene un enlace que al pulsarlo quiero que me lo cargue tambien en la capa #mostrar


Codigo index.php
Código Javascript:
Ver original
  1. <html >
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
  6. <script type="text/javascript">
  7.     var x;
  8.     x=$(document);
  9.     x.ready(inicio);
  10.    
  11.     function inicio(){
  12.             var x;
  13.             x=$("a");
  14.             x.click(muestrame);
  15.     }
  16.      function muestrame(){
  17.          var pagina=$(this).attr("href");
  18.          var x=$("#mostrar");
  19.          x.load(pagina);
  20.          return false;
  21.      }
  22.  
  23.  
  24. </script>
  25. </head>
  26.  
  27. <body>
  28. <a href="pagina2.php?color=verde">Verde</a>
  29. <div id="mostrar"> </div>
  30. </body>
  31. </html>

En la página q carga hay un enlace y quiero q lo muestre tambien en la misma capa #mostrar
Código PHP:
Ver original
  1. <?php
  2. if($_GET['color']=='verde')
  3.     echo "El color que has pulsado es el verde";
  4.  
  5. ?>
  6.  
  7.  
  8. <a href="nuevo.php">Enlace que quiero que me cargue en la capa mostrar</a>

MUCHISIMAS GRACIAS DE ANTEMANO.

  #2 (permalink)  
Antiguo 12/03/2012, 07:47
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 9 meses
Puntos: 192
Respuesta: función load() jquery , rellamada a la misma capa

Espero haber entendido correctamente.

El asunto es que al momento de asignar la función muestrame() al evento click de los <a>, estos sólo se asignan a los que existen en ese momento en el DOM. Este comportamiento es muy obvio y esperable, pero a todos se nos pasa.

jQuery tiene un método para tratar con este asunto, llamado .delegate(). Se usa de esta forma:
Código Javascript:
Ver original
  1. function inicio(){
  2.         var x;
  3.         x=$("a");
  4.         //x.click(muestrame);
  5.         $('#contenedor').delegate('a','click',muestrame)
  6. }

Necesitás envolver todo en un contenedor (yo le puse el id de ejemplo "contenedor"). A ese contenedor le decís que todos los <a> (o cualquier selector jQuery, por supuesto) en su interior que existen ahora y que exisitrán después, deben ejecutar tal función en tal evento.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 12/03/2012, 07:58
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Ubicación: Sevilla
Mensajes: 19
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: función load() jquery , rellamada a la misma capa

Muchas gracias por contestar Naahuel,
Me ha contestado tambien un colaborador del foro por que me confundi de tema y lo duplique aquí.
La solución que he optenido y funciona es así:
Código Javascript:
Ver original
  1. function inicio()
  2. {
  3.             var x;
  4.             x=$("a").live("click",muestrame);
  5.             x.click(muestrame);
  6. }
Funciona correctamente.
MUCHAS GRACIAS

Etiquetas: funcion, load, 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 22:40.