Maison >interface Web >js tutoriel >Pourquoi jQuery n'ajoute-t-il pas de classes aux éléments SVG de manière fiable ?

Pourquoi jQuery n'ajoute-t-il pas de classes aux éléments SVG de manière fiable ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 18:20:15915parcourir

Why Doesn't jQuery Add Classes to SVG Elements Reliably?

jQuery SVG : limitations des modifications de classe

Lorsque vous essayez de manipuler des classes sur des éléments SVG à l'aide de jQuery, vous pourriez rencontrer des difficultés. Explorons le problème.

Dans le code fourni, vous essayez d'ajouter une classe « cliquée » au rectangle SVG à l'aide de .addClass(). Cependant, cette méthode peut ne pas fonctionner correctement en raison d'une limitation sous-jacente dans jQuery.

Les versions de JQuery antérieures à 3 présentent des problèmes connus lors de l'interaction avec les éléments SVG. Plus précisément, ils ne peuvent pas ajouter ou supprimer de manière fiable des classes des éléments SVG. En effet, jQuery manipule principalement le DOM HTML sous-jacent et les éléments SVG ont une représentation interne différente.

Solutions de contournement :

Pour surmonter cette limitation, vous pouvez utiliser les solutions suivantes solutions de contournement :

  • Mise à niveau vers jQuery 3 : La version 3 de jQuery résout le problème avec manipulation de classe SVG. Si possible, mettez à jour vers cette version pour résoudre le problème.
  • Utilisez Vanilla JavaScript : Dans les navigateurs modernes, vous pouvez accéder directement à la propriété classList de l'élément et la modifier. Par exemple :
const element = document.getElementById("p5");
element.classList.add("clicked");
  • Utilisez .attr() de jQuery : Vous pouvez utiliser .attr() pour manipuler l'attribut de classe. Cependant, n'oubliez pas que cela modifie la liste entière des classes, plutôt que de simplement ajouter ou supprimer des classes individuelles.
$("#p5").attr("class", "jimmy clicked");

En implémentant ces solutions de contournement, vous devriez pouvoir ajouter et supprimer efficacement des classes des éléments SVG. en utilisant jQuery ou JavaScript vanille.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn