¿Hay alguna manera, usando jQuery o no, de monitorear el DOM para las inserciones, eliminaciones, actualizaciones de estilos, etc.?¿Cómo controlo el DOM para ver los cambios?
Respuesta
Vea los elementos "MutationEvent" aquí: https://developer.mozilla.org/en/DOM/DOM_event_reference pero están en desuso.
jQuery incluye ahora una manera de unir los eventos a los elementos existentes y futuros correspondientes a un selector: http://docs.jquery.com/Events/live#typefn
Puede ser un truco que puede utilizar por falta de información adecuada modificación DOM nodo.
Ver la biblioteca mutation-summary. Está construido sobre una nueva API de navegador llamada DOM Mutation Observers.
O si no necesita la biblioteca, la API DOM MutationObserver ahora está disponible en Chrome 18+, Firefox 14+, Safari 6+, IE11 +. Hay un buen ejemplo [aquí] (https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/) – foz
Mutation Observers polyfill for older navegadores: https://github.com/webcomponents/webcomponentsjs/tree/master/src/MutationObserver – Pylinux
Esto es sólo para propósitos de depuración:
Firebug actualmente permite establecer puntos de interrupción en los nodos HTML.
usted tiene que abrir el inspector de HTML, haga clic derecho en un nodo y tiene las siguientes opciones:
- interrupción de cambio de atributo
- interrupción de niño agregar/eliminar
- interrupción de eliminar
Una vez que llegue al punto de interrupción también puede explorar la pila de llamadas.
Google Chrome tiene una función similar también.
Recientemente he escrito un plugin que hace exactamente eso - jquery.initialize
Se usa la misma manera que .each
función
$(".some-element").initialize(function(){
$(this).css("color", "blue");
});
La diferencia de .each
es - que toma el selector, en este caso .some-element
y espere nuevos elementos con este selector en el futuro, si dicho elemento se agregará, también se inicializará.
En nuestro caso, la función de inicialización simplemente cambia el color del elemento a azul. Así que si vamos a añadir nuevo elemento (no importa si con el Ajax o incluso inspector de F12 o cualquier cosa) como:
$("<div/>").addClass('some-element').appendTo("body"); //new element will have blue color!
Plugin init al instante. Además, el complemento se asegura de que un elemento se inicialice solo una vez. Entonces, si agrega un elemento, entonces .deatch()
del cuerpo y luego lo vuelve a agregar, no se inicializará nuevamente.
$("<div/>").addClass('some-element').appendTo("body").detach()
.appendTo(".some-container");
//initialized only once
Plugin se basa en MutationObserver
- que funcionará en IE9 y 10 con dependencias como se detalla en el readme page.
- 1. jQuery: ¿Cómo escuchar los cambios DOM?
- 2. TFS muestra los cambios pendientes con el estado "fusionar". Si los controlo, ¿cambiarán los archivos?
- 3. ¿Cómo controlo los archivos para compilar con git?
- 4. Ver todos los eventos dom para un elemento
- 5. Ver los últimos cambios en svn
- 6. ¿El método más eficiente para detectar/monitorear cambios DOM?
- 7. ¿Cómo puedo ver los cambios pendientes de Entity Framework?
- 8. git: cómo ver los cambios debido al empuje?
- 9. git: cómo ver los cambios, la próxima inserción enviará
- 10. Viendo los cambios de DOM, la forma elegante
- 11. ¿Cómo ver un directorio de cambios?
- 12. ¿Cómo ejecuto git log para ver los cambios solo para una rama específica?
- 13. ¿Cómo controlo el contenido del portapapeles en C#?
- 14. ¿Puede cualquiera de los analizadores HTML de Ruby hacer JavaScript para ver el DOM resultante?
- 15. ¿Puedo romper con el depurador en todos los cambios a un elemento DOM?
- 16. ¿Cómo detener la reapertura del navegador firefox una y otra vez para ver los cambios?
- 17. Cómo usar Vim para ver rápidamente los cambios de Mercurial o Git
- 18. ¿Cómo puedo controlar un directorio de Windows para ver los cambios?
- 19. Ver diff de los cambios escalonados en git
- 20. Comprobación para ver si un elemento DOM tiene foco
- 21. ¿Hay una tarea ANT para ver un directorio de cambios?
- 22. ¿Cómo puedo ver el código para los archivos nib/xib?
- 23. contenido de la página html cambiado por jQuery, pero "Ver código fuente" no reflejan los cambios
- 24. ¿Cómo ver los registros desde el iPhone?
- 25. ¿Cómo controlo el tamaño del papel en PDF con ImageMagick?
- 26. ¿Monitorear la tabla MySQL para ver los cambios dentro de un programa C#?
- 27. ¿Cómo puedo ver todos los cambios históricos en un archivo en SVN
- 28. ¿Cómo hacer cambios que solo yo puedo ver?
- 29. ¿Cómo ver cambios de código después de git pull?
- 30. TFS: ¿Cómo ver todos los archivos en muchos conjuntos de cambios?
DOMtree enlace está muerto ... – eruciform
gracias, corregido con un enlace a la MDN;) –
eventos de mutación están en desuso – Raynos