adjuntar eventos a elementos HTML dinámicos en jQuery
cuando se trabaja con contenido cargado dinámicamente en aplicaciones web, adjuntando oyentes de eventos a elementos que pueden no existir en la carga de la página puede posponer un desafío. En este artículo, exploraremos cómo manejar este escenario de manera efectiva usando la biblioteca jQuery.
el desafío
considere un escenario donde tenemos un conjunto de elementos HTML con un nombre de clase específico, digamos ".myclass". Queremos agregar un controlador de eventos de clic a todos los elementos con esta clase, independientemente de si están presentes en la carga de la página o se agregan dinámicamente. Inicialmente, podríamos emplear el siguiente código:
$(function() { $(".myclass").click(function() { // Do something }); });
Este código funciona bien para los elementos existentes con la clase ".myclass", pero no adjuntará los controladores de eventos a los elementos agregados más tarde a través de las operaciones dinámicas, como AJAX o HTML generado dinámicamente.
. on (), que nos permite vincular a los manejadores de eventos a elementos que aún no existen dentro del DOM. En lugar de adjuntar directamente los eventos a un selector específico, especificamos un elemento principal y usamos la delegación de eventos para capturar los eventos para descendientes agregados dinámicamente. $ ('Body'). On ('Click', 'a.myclass', function () { // Haz algo });
En este ejemplo, hacer clic en cualquier elemento que coincida con el selector 'a.myclass' dentro del cuerpo activará el controlador de eventos, independientemente de si el elemento estaba presente en la carga de la página o se agregó más adelante. El elemento
body$('body').on('click', 'a.myclass', function() { // Do something });. On ()
] se llama. Código: y el siguiente código JavaScript: $ ('Body'). On ('Click', '#Anchor1', function () { $ (this) .Append ('
Cuando un usuario hace clic en el elemento #ancla1, un nuevo enlace con la clase ".myclass" se generará dinámicamente. efectivamente.
conclusión
. on ()
delegación de eventos, podemos asegurarnos
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3