Comunidad de diseño web y desarrollo en internet online

Delegar con .on()

Citar            
MensajeEscrito el 05 May 2012 05:01 pm
Hola a todos.

Tengo un formulario y si lo cargo mediante un simple href entonces me funciona el sistema de validación.

Pero mi idea como es normal es cargarlo sin recargar el resto de la página. Para ello uso .load() de jquery de la siguiente forma.

Código Javascript :

$("#boton").click(function(evento){
    evento.preventDefault();
    $("#contenido").load("php/formulario.php");
});


Bien mi problema es que ahora carga correctamente pero no valida nada, se que es debido a que el JS solo ha revisado el DOM en la carga inicial y que ahora tengo que "delegar" (creo que es así) a la nueva estructura del DOM.

He leído que ahora se hace mediante .on()
Mi problema es que tras revisar la web de jquery no tengo muy claro como puedo hacer que JS vea que hay algo nuevo y que mi formulario valide al ser incluido con .load()

Espero haberme explicado correctamente.

Por curioso

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2012 05:41 pm
Prueba con esto:

$('.lo_que_sea').live("click", function(){

});

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 05 May 2012 06:35 pm
Lo que tienes que hacer es un callback de la función

Código Javascript :

$("#boton").click(function(evento){
    evento.preventDefault();
   //Tienes que crear una función de callback que recogerá los datos cargados "(datos)"
    $("#contenido").load("php/formulario.php", function (datos) {
      //Aqui haces lo que quieras con los datos
      console.log(datos);
   });
});


Un saludo.

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 09 May 2012 10:36 am
Siguiendo las recomendaciones propias de jquery

Código Javascript :

$("#contenido").on('click', "#boton", callback);


Todo lo que se genere dinamicamente se pasa como segundo parámetro en el .on()

Y como selector tienes que poner un elemento padre que NO se vaya a cargar dinamicamente. (si no tienes ninguno pon body pero cuanto más cercano más optimizacion)

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

firefox

 

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