Im Bereich der jQuery-SVG-Manipulation stoßen Benutzer gelegentlich auf Schwierigkeiten beim Hinzufügen oder Entfernen von Klassen aus SVG-Elementen. Ein häufiges Szenario, das dieses Problem auslöst, ist das Targeting von SVG-Objekten mit jQuery und der Versuch, die Methode .addClass() zu verwenden.
Das bereitgestellte Code-Snippet verdeutlicht das Problem:
<rect class="jimmy">
$(".jimmy").click(function() { $(this).addClass("clicked"); });
Während die jQuery- und SVG-Integration bei der Ereignisbehandlung einwandfrei funktioniert, bleibt die Klassenmanipulation erfolglos.
Die Hauptursache liegt in der eingeschränkten Unterstützung der SVG-Klassenmanipulation in jQuery-Versionen vor v3. Dieses Problem ergibt sich aus der Tatsache, dass jQuery SVG-Elemente anders behandelt als HTML-Elemente.
Es bieten sich mehrere Lösungen an, um dieses Problem anzugehen:
// Add class using .attr() $("#item").attr("class", "oldclass newclass"); // Remove class using .attr() $("#item").attr("class", "oldclass");
// Add class using .setAttribute() var element = document.getElementById("item"); element.setAttribute("class", "oldclass newclass"); // Remove class using .setAttribute() element.setAttribute("class", "oldclass");
Das obige ist der detaillierte Inhalt vonWarum funktioniert jQuery AddClass() nicht bei SVG-Elementen und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!