Pourquoi l'événement DOMSubtreeModified déprécié et qu'est-ce qu'on est censé utiliser à la place ?
@ TJ - no down. Celui du dessus est DOMNodeRemovedFromDocument . :-)
Pourquoi l'événement DOMSubtreeModified déprécié et qu'est-ce qu'on est censé utiliser à la place ?
Si vous faites défiler un peu vers le bas vous voyez :
Attention ! Le site
MutationEvent
a été introduite dans le DOM Level 2 Events, mais n'a pas encore été complètement implémentée de manière interopérable. dans tous les agents utilisateurs. En outre, des critiques ont été émises selon lesquelles l'interface l'interface, telle qu'elle est conçue, présente un défi en termes de performance et de mise en œuvre. de performance et d'implémentation. Une nouvelle spécification est en cours de développement dans le but de d'aborder les cas d'utilisation que les événements de mutation résolvent, mais d'une manière plus performante. plus performante. Ainsi, cette spécification décrit les événements de mutation à des fins de référence et pour l'exhaustivité du comportement hérité, mais rend obsolète l'utilisation de laMutationEvent
et l'interfaceMutationNameEvent
interface.
L'API de remplacement est observateurs de mutations qui sont entièrement spécifiés dans les DOM Niveau de vie qui supplante toutes les sottises du niveau X de DOM.
Le remplacement se fera dans le DOM Level 4 dvcs.w3.org/hg/domcore/raw-file/tip/ et il semble qu'il y ait des progrès dans Chromium bugs.webkit.org/show_bug.cgi?id=73851
Un excellent hack pour remplacer le MutationEvent
L'interface est animationStart
et quelques CSS .
Je pense que le remplacement se fera par des observateurs de mutations : https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
var whatToObserve = {childList: true, attributes: true, subtree: true, attributeOldValue: true, attributeFilter: ['class', 'style']};
var mutationObserver = new MutationObserver(function(mutationRecords) {
$.each(mutationRecords, function(index, mutationRecord) {
if (mutationRecord.type === 'childList') {
if (mutationRecord.addedNodes.length > 0) {
//DOM node added, do something
}
else if (mutationRecord.removedNodes.length > 0) {
//DOM node removed, do something
}
}
else if (mutationRecord.type === 'attributes') {
if (mutationRecord.attributeName === 'class') {
//class changed, do something
}
}
});
});
mutationObserver.observe(document.body, whatToObserve);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.