MutationObserver et attribut data-*

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
annasm
Messages : 1
Enregistré le : 26 juin 2025, 11:59

MutationObserver et attribut data-*

Message par annasm » 11 juil. 2026, 11:50

Bonjour, Retro Bowl

Je travaille sur une page où plusieurs éléments HTML sont mis à jour en modifiant uniquement leurs attributs data-* via JavaScript.

J'utilise un MutationObserver avec l'option attributes: true, mais je voudrais déclencher une fonction uniquement lorsque la valeur d'un attribut précis (par exemple data-status) change réellement, et pas lorsque d'autres attributs sont modifiés.

Existe-t-il une manière propre de filtrer directement ce type de changement dans le MutationObserver, ou faut-il systématiquement comparer l'ancienne et la nouvelle valeur dans le callback ? Si vous avez un exemple performant pour une page contenant plusieurs centaines d'éléments observés, je suis preneur.

Merci d'avance pour vos conseils !

drakrou15
Messages : 1
Enregistré le : 24 juil. 2026, 03:31

Re: MutationObserver et attribut data-*

Message par drakrou15 » 24 juil. 2026, 03:32

Oui, tu peux utiliser attributeFilter pour ne surveiller que data-status. Par exemple : observer.observe(node, { attributes: true, attributeFilter: ['data-status'], attributeOldValue: true });. Ensuite, dans le callback, il reste utile de comparer oldValue avec la valeur actuelle pour éviter des traitements inutiles si le script réaffecte la même valeur.

Répondre