tengo un código que se une en acción de clic en la carga de la página, es un enlace. Cuando hago clic en él, envía una solicitud ajax y reemplaza el contenido en algún div con la función jquery append(). Este nuevo contenido tiene un enlace y debo vincular algunas acciones para ellos, pero no pude ... obligarlo a funcionar, creo, porque jquery append no actualiza el árbol DOM. ¿Cómo podría obtener un enlace atrasado?jquery enlace tardío
Respuesta
Enlace tardío ya está disponible mediante la utilización de eventos en vivo de jQuery():
$('a.my-links-class').live('click', function() {
// do your link action here
});
Debe usar la función live
de jQuery, que vinculará un evento a todos los elementos que coinciden con un selector, sin importar cuándo fueron creados.
Puede usar jQuery 1.3 función + 's $().live(event, function)
. $("a").live("click", myClickFunc)
enlazará myClickFunc
como $("a").click(myClickFunc)
o $("a").bind("click", myClickFunc)
, pero los eventos se vincularán "en vivo", por lo que los elementos que se agreguen al DOM después de esa llamada de función también estarán vinculados. Puede eliminar eventos enlazados en vivo con $().die()
. Para obtener más información sobre $(). Live, vea the documentation for it.
Otra opción sería tener una función para unir los elementos dado un contexto determinado (utilizando la función de selección $ se utiliza raramente segundo parámetro):
function myBindEvents(context) {
$("a", context).click(myClickFunc);
}
y llamar a que cada vez que se actualiza un elemento con AJAX :
$("<div>").load("...", "...", function(){myBindEvents(this);});
Espero que esto ayude. :)
.live() evento fue obsoleto de verions 1.9 up.
Para cualquier persona que utilice la versión posterior de Jquery pueden usar el evento .on(), funciona prácticamente de la misma manera.
Hay 3 funciones que pueden hacer esto:
$(selector).live(events, data, handler);
- jQuery 1.3+ - versión desuso: 1,7, eliminado: 1,9 (reference)$(document).delegate(selector, events, data, handler);
- jQuery 1.4.3+ - A partir de jQuery 1.7, .delegate() ha sido reemplazado por el método .on(). (reference)$(document).on(events, selector, data, handler);
- jQuery 1.7+ - preferido (reference)
Es generalmente aconsejado utilizar on()
y su uso es simple y probablemente manera preferente.
- El primer selector debe existir cuando se llama a la función y no se puede eliminar o el evento también desaparecerá (puede ser
document
). - El primer parámetro es el evento (p."clic")
- El segundo parámetro es el selector al que desea vincular el evento.
- Entonces, finalmente puede agregar algunos datos personalizados y una función para el evento.
He aquí algunos ejemplos de código:
// Make sure the DOM is ready
$(function() {
// Bind the click event to the function
$(document).on("click", "a.class", function(event) {
// Put your code here.
});
});
Brillante! Me pregunto por qué esto no funciona: $ (función() { $ ('. Clase'). On ("clic", "a", función (evento) { // Ponga aquí su código. }); }); – Narayana
¿Está buscando un elemento 'a' dentro de otro elemento con clase' clase'? – Broxzier
Sí ... Pensé que '$ ('. Class1')' seleccionará todos los elementos con una clase de 'clase1',' 'a" 'seleccionará las etiquetas de anclaje y vinculará el manejador de eventos. ¿No? – Narayana
Método .live
en JQuery 1.9
es deprecated.So ahora u puede hacer así:
$("body").on("click", ".classname", function() { ... })
- 1. Enlace dinámico == enlace tardío en Java o no?
- 2. Enlace tardío frente a polimorfismo: ¿cuál es la diferencia?
- 3. Problema WebBrowser con nombres de objetos/propiedades de Enlace tardío
- 4. Problema de enlace tardío con MVC3 ViewBag en VB.NET
- 5. Enlace anticipado vs. enlace tardío: ¿cuáles son los beneficios y desventajas comparativas?
- 6. El método de envío MSXML2.XMLHTTP funciona con el enlace anticipado, falla con el enlace tardío
- 7. ¡Problema con el encuadernado tardío!
- 8. ¿Es posible usar en exceso el enlace estático tardío en PHP?
- 9. ¿Cómo utilizar el enlace tardío para obtener la instancia de Excel?
- 10. ¿CreateObject equivalente para C# 4, palabra clave dinámica y enlace tardío?
- 11. Cómo obtener un valor de enum de un ensamblado utilizando el enlace tardío en C#
- 12. jQuery deshabilitar un enlace
- 13. jQuery UI Datepicker Today Enlace
- 14. Adjuntar un enlace con Jquery
- 15. jQuery clic en el enlace no funciona
- 16. Cómo deseleccionar un enlace usando jquery
- 17. jquery demora que se siga un enlace
- 18. Jquery desactivar enlace durante 5 segundos
- 19. jQuery Mobile: enlace al evento pageinit
- 20. jQuery etiqueta de enlace habilitar bloquear
- 21. Javascript/jQuery: siga programáticamente un enlace
- 22. jQuery: reemplazar el texto dentro del enlace?
- 23. cambio html texto de enlace con jQuery
- 24. HTML5/jQuery: pushState y popState - ¿enlace profundo?
- 25. Sin tener un enlace en jQuery
- 26. Hacer un enlace Negrita al hacer clic con Jquery
- 27. Enlace a otra página -> jquery desplácese a ancla específica
- 28. Simulando un clic en jQuery/JavaScript en un enlace
- 29. plugin de jQuery - No encontraste enlace de descarga
- 30. Jquery show div cuando se hace clic en el enlace
Esto acaba de hacer mi día. vivir() es increíble! – AnApprentice
Debería utilizar 'on()' en lugar de 'live()'. – Broxzier