"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo detectar y responder a cambios en los atributos DOM: MutationObserver versus métodos heredados?

¿Cómo detectar y responder a cambios en los atributos DOM: MutationObserver versus métodos heredados?

Publicado el 2024-11-02
Navegar:406

How to Detect and Respond to DOM Attribute Changes: MutationObserver vs. Legacy Methods?

Activación de eventos en cambios de atributos DOM

Muchos escenarios requieren detectar cambios en los atributos DOM, como cuando cambia el origen de una imagen o el HTML de un div actualizaciones de contenido. La compatibilidad del navegador con esta funcionalidad ha evolucionado con el tiempo.

Eventos de mutación DOM (heredado)

En el pasado, los eventos de mutación DOM proporcionaban una forma de escuchar los cambios de atributos. Estos eventos incluyeron:

  • DOMAttrModified
  • DOMNodeInserted
  • DOMNodeRemoved

Sin embargo, la compatibilidad del navegador con los eventos de mutación DOM fue inconsistente, lo que llevó a su obsolescencia en 2012.

API MutationObserver

Como reemplazo de DOM Mutation Events, se introdujo la API MutationObserver. MutationObserver ofrece un método más sólido y ampliamente compatible para detectar cambios en los atributos DOM y otros aspectos del DOM.

Con MutationObserver, puede crear una instancia de observador y especificar los tipos de cambios que desea monitorear. El observador le notificará cuando se produzcan cambios coincidentes en el DOM.

Aquí hay un ejemplo de cómo puede utilizar MutationObserver para detectar cambios en el atributo de origen de una imagen:

// Create an observer instance
const observer = new MutationObserver((mutations) => {
  for (const mutation of mutations) {
    // Check if the mutation is for the "src" attribute
    if (mutation.attributeName === "src") {
      // Do something in response to the source change
    }
  }
});

// Start observing the specified target node
observer.observe(image, { attributes: true, attributeFilter: ["src"] });

En este ejemplo, el observador está configurado para observar el atributo src del nodo de imagen e invocará la devolución de llamada especificada siempre que ese atributo cambie.

Complemento jQuery Mutation Events

Si estás usando jQuery, puedes aprovechar su complemento Mutation Events como alternativa a MutationObserver. Este complemento proporciona una interfaz simplificada para manejar cambios de atributos DOM y puede ser útil si solo está interesado en cambios de atributos específicos.

$(image).on("DOMAttrModified", (event) => {
  if (event.attrName === "src") {
    // Do something in response to the source change
  }
});

Al utilizar MutationObserver o el complemento jQuery Mutation Events, puede detectar de manera efectiva cambios en los atributos DOM y ejecutar acciones personalizadas en respuesta a esos cambios.

Último tutorial Más>

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