Je veux savoir, si possible, comment vérifier JavaScript si un élément a changé ou un attribut de celui-ci?
Je veux dire quelque chose comme tel que je sais window.onhashchange code> pour un élément comme un élément : p>
Onchange code> est quelque chose comme ça, mais cela fonctionnera-t-il si je veux savoir de cette manière: p> < Pré> xxx pré> p>
5 Réponses :
Je suppose que vous auriez besoin d'un moyen de capturer l'événement qui a déclenché le changement d'attribut plutôt que le changement d'attribut. La modification de l'attribut ne pourrait être que due à votre CSS ou à votre JavaScript, les deux manifestations des actions de l'utilisateur. P>
Oui, vous devriez capturer l'événement qui modifie l'attribut. Il n'y a pas d'auditeur d'événement pour "Changements d'attribut"
@TIMDREAM Oui, il n'est pas nécessaire de rentrer chez eux sur de tels changements, car de toute façon (CSS ou JavaScript), nous pouvons les attacher au modèle d'événement existant. Merci
-1, cette question ne concerne pas le DOM, voir: var element = {}; code>
@Jan, on dirait que je pouvais avoir mal interprété. Cependant, cela supplique la question, ce scénario justifie-t-il réellement l'utilisation d'un modèle d'événement?
Pourquoi pas, qu'est-ce qui ne va pas avec des événements? JavaScript est une très bonne langue pour travailler avec des événements.
Il vaut mieux incorporer la logique dans les Setters lui-même. Ce n'est pas parce que les événements ne veulent pas dire que c'est un bon design pour les employer tout le temps.
Personne n'a dit qu'il devait l'utiliser tout le temps. Il existe des cas d'utilisation dans lesquels un système d'événements est parfaitement valide.
De quoi parles-tu? Il n'a pas expliqué son usecase. S'il veut réagir sur les changements d'un objet de l'extérieur de son contexte, il s'agit d'une usecase valide. Si vous voulez faire de la base de données comme dans WPF, ce modèle doit.
Autant que je comprenne, vous voulez que l'échange sur les propriétés d'objet JavaScript. La réponse est non, cela n'existe pas aussi loin que je sache.
Mais vous pouvez faire une fonction de setter comme celle-ci (comme une preuve de concept): p> Maintenant, vous obtenez une boîte d'alerte avec 'quelque chose changé de non défini au monde de Bonjour!'. Et Si vous appelez maintenant: P> (élément.something === 'Hello World!') Code> retournera
vrai code>. P>
element.setProperty('something', 'Goodbye world!');
Je pense que seuls les champs d'entrée incendient l'événement OnChange une fois que leur valeur est modifiée ... Ce code est-il testé? Si oui, fonctionne-t-il sous tous les navigateurs?
Pour autant que je comprends bien, cette question n'a rien à voir avec des éléments DOM. Il s'agit d'objets javascript. J'ai testé cela dans la console chrome. Je suis à peu près sûr que cela fonctionne aussi sur d'autres navigateurs.
Je crois qu'il n'y a pas d'événement de ce type. Cependant, vous pouvez utiliser seinterval ou settimeout pour regarder les changements d'élément et l'utiliser pour réagir en conséquence. P>
Je l'ai fait. Ça marche assez bien. J'aurais utilisé la méthode SetProperty si j'avais connu.
Vous pourriez envisager un observateur de mutation. P>
Pour ce faire, vous créez d'abord un rappel (tiré lorsque l'élément DOM change) p>
Attribuez-le à un observateur Dites ensuite à l'observateur de quoi regarder
Il s'agit de la réponse la plus à jour et pertinente - vous pouvez ajouter un code simple pour rendre cela plus visible Jsfiddle.net / wg4ahtf6 var observateur = nouveau mutationobserver (rappel); code> p>
Observer.Observe ('
Pourriez-vous bien vouloir confirmer si vous souhaitez suivre les modifications de l'attribut de l'objet ou de modifier l'attribut d'un élément DOM? Merci
Dupliquer de Stackoverflow.com/Questtions/4266852/...
@ Nyuszika7h Je ne pense pas: P Ceci est une question générale.