En este momento estoy tratando de encontrar una manera de detectar cuando un elemento HTML ha cambiado.Necesito una nueva forma de detectar si ha habido un cambio en un elemento HTML
actualmente estoy tratando:
var a, b;
setInterval(function() {
a = $('#chat').text();
}, 150);
setInterval(function() {
b = $('#chat').text();
if (a !== b) {
alert("There has been a new message.");
}
}, 200);
Lo que hago es cada 150 milisegundos puedo comprobar el código HTML de #chat y luego cada 200 segundos puedo comprobar el HTML de nuevo y luego comprobar si la variable a
no lo hace igual a la variable b
ellos en el futuro voy a hacer algo con eso, pero por ahora solo estoy alerta algo.
Se puede ver en vivo aquí: http://jsfiddle.net/MT47W/
Obviamente esta manera no está funcionando y no es muy precisa en absoluto. ¿Hay algo mejor/diferente que hacer/lograr esto?
Gracias por cualquier ayuda, he estado tratando de descubrir cómo hacerlo mejor durante aproximadamente una semana pero no puedo encontrar una solución para esto y espero haber publicado este problema en el lugar correcto, y en el momento correcto.
Podría estar equivocado, pero estoy bastante seguro de que escuchar eventos DOM no está muy bien soportado y eliminado de las últimas especificaciones por completo. – zatatatata
@VahurRoosimaa, podría estar equivocado, pero jQuery trabaja principalmente en el evento DOM escuchando la delegación de eventos y veo que últimamente se usa ampliamente en las respuestas. Ahora, si trae algún problema de compatibilidad, cualquiera de las revisiones anteriores también funcionará. =] ¿O quisiste decir, los eventos de mutación DOM específicamente? –
Wow muchas gracias. Nunca escuché acerca de: DOMNodeInserted y no estoy seguro si eso sería bien soportado como dijo Vahur, así que creo que usaré el segundo método. Pero gracias por todas estas formas. Pero también pensé en usar datos de solo obtener la longitud de los niños en #chat. ¡Bueno, aprendo algo nuevo todos los días! :) – Shawn31313