2009-08-24 14 views
9

Mi pregunta es algo extraña, pero ¿puedo agregar eventos para cualquier elemento DOM (div), como 'onHtmlChange', para que se notifique cuando ese div haya cambiado su contenido?¿Puede javascript escuchar "onDomChange" en cada elemento Dom?

+0

Idealmente, no debería requerir alguna vez tal evento. ¿Qué haría exactamente que el HTML de un elemento dado cambie? – James

+0

GMaps está alimentando un DIV con su contenido. Pero la raíz de mi pregunta es solo imitar un enfoque de programación de flujo de datos: P – Frangossauro

Respuesta

7

Consulte DOMNodeInserted y DOMNodeRemoved.

Ben Nadel escribió en su blog recientemente los siguientes: Detecting When DOM Elements Have Been Removed With jQuery

+0

Parece que el OP quiere saber cuándo ha cambiado el contenido HTML dentro de los divs. – seth

+0

@seth -Las rampas que usan el modelo W3C deben disparar tanto 'DOMNodeInserted' como' DOMNodeRemoved' cuando cambian los contenidos de un nodo, incluso si se trata solo de nodos de texto (recién probado FF3). El truco de IE mencionado en el artículo vinculado podría extenderse fácilmente a '.html()' y '.text()' para imitar esto. –

1

El DOMNodeInserted y DOMNodeRemoved son parte de la Mutation Events que ahora está en desuso. Por lo tanto, necesita echar un vistazo en Mutation Observer. Hice lo mismo en uno de mis proyectos, que es necesario para escuchar los cambios DOM de un determinado elemento. DOM añadir, eliminar, atributos y cambios de datos.

Estos enlaces le ayudarán a:

  1. http://gabrieleromanato.name/jquery-detecting-new-elements-with-the-mutationobserver-object/
  2. https://github.com/kapetan/jquery-observe
  3. Is there a JavaScript/jQuery DOM change listener?
Cuestiones relacionadas