Heim > Web-Frontend > js-Tutorial > Können Sie Stilattributänderungen in JavaScript verfolgen?

Können Sie Stilattributänderungen in JavaScript verfolgen?

Barbara Streisand
Freigeben: 2024-11-10 03:08:02
Original
183 Leute haben es durchsucht

Can You Track Style Attribute Changes in JavaScript?

Ist es möglich, Stilattributänderungen zu überwachen?

Dem jQuery-Framework fehlt ein spezifischer Ereignis-Listener für Stiländerungen. Durch die Nutzung von MutationObserver können Änderungen des „Stil“-Attributs jedoch effektiv verfolgt werden.

Verwendung von MutationObserver

const target = document.getElementById('myId');
const observer = new MutationObserver((mutations) => {
  mutations.forEach((mutationRecord) => {
    console.log('Style changed!');
  });
});

observer.observe(target, { attributes: true, attributeFilter: ['style'] });
Nach dem Login kopieren

In der Callback-Funktion bietet das mutationRecord-Objekt Zugriff auf die alten und neuen Stilwerte.

Vorübergehende Lösung mit jQuery Override

Zuvor eine jQuery-basierte Die Problemumgehung bestand darin, die Methode „prototyp.css“ vorübergehend zu überschreiben:

(function() {
  var ev = new $.Event('style');
  var orig = $.fn.css;
  $.fn.css = function() {
    $(this).trigger(ev);
    return orig.apply(this, arguments);
  }
})();
Nach dem Login kopieren

Während dieser Ansatz mit MutationObserver-Unterstützung nicht mehr notwendig ist, zeigt er, wie Stiländerungen abgefangen werden können.

Zusätzliche Überlegungen

MutationObserver wird in modernen Browsern, einschließlich IE 11, gut unterstützt, was es zu einer praktikablen Lösung zur Stilerkennung macht Attributänderungen.

Das obige ist der detaillierte Inhalt vonKönnen Sie Stilattributänderungen in JavaScript verfolgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage