2009-08-24 6 views
9

Ma question est un peu bizarre, mais puis-je ajouter des événements pour tous les éléments DOM (div), comme 'onHtmlChange', pour être averti lorsque cette div a changé de contenu?Can javascript écoute "onDomChange" sur tous les éléments Dom?

+0

Idéalement, vous ne devriez jamais besoin d'un tel événement. Que ferait exactement le HTML d'un élément donné? – James

+0

GMaps alimente un DIV avec son contenu. Mais la racine de ma question est juste d'imiter une approche de programmation de flux de données: P – Frangossauro

Répondre

7

Consultez DOMNodeInserted et DOMNodeRemoved.

Ben Nadel a récemment blogué les suivantes: Detecting When DOM Elements Have Been Removed With jQuery

+0

On dirait que l'OP veut savoir quand le contenu HTML à l'intérieur des divs a changé. – seth

+0

@seth -Les navigateurs qui utilisent le modèle W3C doivent déclencher à la fois 'DOMNodeInserted' et' DOMNodeRemoved' lors de la modification du contenu d'un nœud, même si ce n'est que des nœuds de texte (juste testé FF3). Le truc d'IE mentionné dans l'article lié pourrait facilement être étendu à '.html()' et '.text()' pour imiter cela. –

1

Le DOMNodeInserted et DOMNodeRemoved font partie du Mutation Events qui est maintenant dépréciée. Par conséquent, vous devez jeter un oeil sur Mutation Observer. J'ai fait la même chose dans un de mes projets, c'est-à-dire que j'avais besoin d'écouter les changements DOM d'un certain élément. Ajout, suppression, attribut et modification de données DOM

Ces liens vous aider:

  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?
Questions connexes