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 !
MutationObserver et attribut data-*
Re: MutationObserver et attribut data-*
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.
