Sv Community El Salvador
Soporte y Tecnología => Programación => Web => Mensaje iniciado por: Camus de Acuario en junio 17, 2010, 06:41:25 pm
-
Buenas amigos, en una paginita que estoy trabajando me di cuenta de un pequeño problema en jquery, y es que cuantas veces no asociamos eventos a un tipo de objeto para que ejecute un codigo javascript mediante jQuery, todo bien, pero si la respuesta de ese codigo es generar nuevos objetos del mismo tipo, y aplicas el mismo evento no sucede nada..........
Tienes el problema que cualquier contenido que cargue despues de cargada la pagina (mediante ajax usando php o generando nuevos objetos mediante javascript), jQuery no lo encuentra.......
ejemplo:
$("p").click(function(){
$(this).after("<p>Another paragraph!</p>");
});
con este codigo, al hacer click en un parrafo, nos va a crear otro parrafo nuevo, pero si le damos click al nuevo parrafo, en efecto es el mismo tipo de objeto <p>, pero al ser creado despues de enlazar el evento click al objeto <p>, jQuery no lo encuentra, como si quedara flotando y no estuviera en codigo.
Por eso jQuery a partir de su version 1.3 introduce el concepto del evento: LIVE
asi, el evento live, se usa para asociar cualquier evento a un tipo de objeto de alli para adelante, no importando en que momento se hizo la asociacion.
el nuevo codigo seria:
$("p").live("click", function(){
$(this).after("<p>Another paragraph!</p>");
});
Aun despues de cargada la pagina y hecho las asociaciones de eventos, cualquier codigo dinamico generado estará bajo esas mismas asociaciones.
Asi con live, nos cubrimos la espalda para que cada nuevo contenido dinamico cargado en nuestra pagina se siga aplicando codigo cuando ejecutamos un evento como click, hover, mouseover, etc, etc, etc
Espero hayan entendido, que al leerlo por segunda vez no mucho le hayo jejejejeje
-
no me habia topado con esto pero ahora ya se.
debe ser super util cuando usas ajax.
un tutorial para no quebrar el back button con ajax estaria super :D
-
Ahora Jquery ya va por la version v1.4.2 :shockd:
Bueno. esa no me la sabia (jeje de muchas que no me se)
se ve que es muy util , mas cuando de crear elementos dinamicamente se trata.
Gracias por el dato eh!!!
-
Buenas amigos, en una paginita que estoy trabajando me di cuenta de un pequeño problema en jquery, y es que cuantas veces no asociamos eventos a un tipo de objeto para que ejecute un codigo javascript mediante jQuery, todo bien, pero si la respuesta de ese codigo es generar nuevos objetos del mismo tipo, y aplicas el mismo evento no sucede nada..........
Tienes el problema que cualquier contenido que cargue despues de cargada la pagina (mediante ajax usando php o generando nuevos objetos mediante javascript), jQuery no lo encuentra.......
ejemplo:
con este codigo, al hacer click en un parrafo, nos va a crear otro parrafo nuevo, pero si le damos click al nuevo parrafo, en efecto es el mismo tipo de objeto <p>, pero al ser creado despues de enlazar el evento click al objeto <p>, jQuery no lo encuentra, como si quedara flotando y no estuviera en codigo.
Por eso jQuery a partir de su version 1.3 introduce el concepto del evento: LIVE
asi, el evento live, se usa para asociar cualquier evento a un tipo de objeto de alli para adelante, no importando en que momento se hizo la asociacion.
el nuevo codigo seria:
Aun despues de cargada la pagina y hecho las asociaciones de eventos, cualquier codigo dinamico generado estará bajo esas mismas asociaciones.
Asi con live, nos cubrimos la espalda para que cada nuevo contenido dinamico cargado en nuestra pagina se siga aplicando codigo cuando ejecutamos un evento como click, hover, mouseover, etc, etc, etc
Espero hayan entendido, que al leerlo por segunda vez no mucho le hayo jejejejeje
Me parece fantástico...era lo que llevaba días buscando...pero no me funciona.
Tengo la version 1.5 y pongo lo siguiente:
$(".claseinexistenteparaclickjquery").live('click' ,function() {
todo el codigo js que funciona con el enunciado sin el live;
});
¿qué se me escapa? He probado la palabra live con ' y con "
CORRIJO: FALTABA UN } .
GRACIAS GRACIAS GRACIAS.
P.D: Tu ejemplo estaba perfectamente explicado.
-
Buenas amigos, en una paginita que estoy trabajando me di cuenta de un pequeño problema en jquery, y es que cuantas veces no asociamos eventos a un tipo de objeto para que ejecute un codigo javascript mediante jQuery, todo bien, pero si la respuesta de ese codigo es generar nuevos objetos del mismo tipo, y aplicas el mismo evento no sucede nada..........
Tienes el problema que cualquier contenido que cargue despues de cargada la pagina (mediante ajax usando php o generando nuevos objetos mediante javascript), jQuery no lo encuentra.......
ejemplo:
con este codigo, al hacer click en un parrafo, nos va a crear otro parrafo nuevo, pero si le damos click al nuevo parrafo, en efecto es el mismo tipo de objeto <p>, pero al ser creado despues de enlazar el evento click al objeto <p>, jQuery no lo encuentra, como si quedara flotando y no estuviera en codigo.
Por eso jQuery a partir de su version 1.3 introduce el concepto del evento: LIVE
asi, el evento live, se usa para asociar cualquier evento a un tipo de objeto de alli para adelante, no importando en que momento se hizo la asociacion.
el nuevo codigo seria:
Aun despues de cargada la pagina y hecho las asociaciones de eventos, cualquier codigo dinamico generado estará bajo esas mismas asociaciones.
Asi con live, nos cubrimos la espalda para que cada nuevo contenido dinamico cargado en nuestra pagina se siga aplicando codigo cuando ejecutamos un evento como click, hover, mouseover, etc, etc, etc
Espero hayan entendido, que al leerlo por segunda vez no mucho le hayo jejejejeje
Interesante...
gracias por el dato... :thumbsup: :thumbsup: :thumbsup: