Comunidad de diseño web y desarrollo en internet online

Enlaces en Jquery sobre contenido ya cargado

Citar            
MensajeEscrito el 05 Mar 2013 04:57 pm
Buenas!

Acabo de conseguir la carga de una página dentro de otra con Jquery con el método load. Llamo a dicho método dentro de un evento click de un hiperenlace.

Hasta ahora lo que he conseguido es que:

El enlace A me manda a la página A
El enlace B me manda a la página B

El problema que se me presenta es que ahora quiero que:

Un enlace en la página A (cargada anteriormente por el enlace A) me mande a la página B...

Y claro, ya se empieza a liar el tema ya que en la página A no hay ningún tipo de código JQuery.

Como esto a lo mejor lía con palabras os dejo un dibujo que ilustra mejor la disposición de los elementos:



Espero que podais ayudarme. Gracias :D

Por Melkart

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2013 01:07 pm
Bueno, me doy la respuesta a mi mismo por si le sirve a otro.

El tema es que el DOM no se da cuenta del nuevo contenido por lo que los selectores no funcionan. Igual que tenemos la opción de usar el método bind() para manejar eventos teníamos el live() que se encargaba de esto (sólo había que sustituir bind por live y la estructura se dejaba intacta.

Código Javascript :

$("p.old").bind("click", function(){
  $("#content2").load("page3-2.htm #content3");
});

$("p.new").live("click", function(){
   alert("estoy en la nueva")
});


Pero esto ya no funciona desde la versión 1.4.3 ya que usaron el delegate...

Y lo mejor de todo es que ahora tampoco funciona el delegate XD. Ahora a partir de la 1.7 se usa "on" por lo que el funcionamiento actual pasa a ser algo así como:

$(document).on(events, selector, data, handler);

e implementado:

Código Javascript :

$(document).on("click", "p.new", function(){ 
    alert("estoy en la nueva")
});


Y con esto cierro un quebradero de cabeza. Ya volveré con otro (XD)

Espero que os sirva

Por Melkart

6 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.