Bonjour,
J'essai de détecter le changement de l'attribut style d'un span.
Pouvez-vous m'aider svp.
Merci
Version imprimable
Bonjour,
J'essai de détecter le changement de l'attribut style d'un span.
Pouvez-vous m'aider svp.
Merci
Salut,
ce n'est pas un problème facile. On peut observer les modifications d'une propriété JavaScript en y ajoutant un setter comme ceci :
Le problème de cette méthode est qu'elle annule les changements. Avec une propriété JavaScript ordinaire, on pourrait bricoler un truc avec une variable intermédiaire pour garder trace de ces changements, mais là il s'agit d'une propriété DOM, on ne peut pas la réinventer.Code:
1
2
3
4
5 Object.defineProperty(monObjet, "maVariable", { set: function(val) { console.log(val); } });
Il y a une autre méthode, mais un peu moins propre : utiliser setInterval.
La durée de l'intervalle est peut-être à ajuster.Code:
1
2
3
4
5
6
7 var oldStyle; setInterval(function( ){ if (monSpan.style !== oldStyle) { console.log(monSpan.style); oldStyle = monSpan.style; } }, 50);
Peux-tu nous dire pourquoi tu cherches à détecter un changement d'attribut style ? Un tel besoin n'est pas courant. Si tu es l'auteur du reste du code, il vaut mieux que tu le réorganises.
Ce n'est pas trivial parce que le changement de style d'un élément ne se produit pas par magie et que contrairement aux événements JavaScript (qui dépendent des actions de l'utilisateur), c'est uniquement lié à l'exécution d'un code.
Il me semble donc que le plus simple serait d'agir au niveau de la fonction qui provoque ces changements de style...