jQuery SVG, pourquoi ne puis-je pas addClass?

Je suis à l'aide de jQuery SVG. Je ne peux pas ajouter ou supprimer une classe à un objet. Quelqu'un sait mon erreur?

Le SVG:

<rect class="jimmy" id="p5" x="200" y="200" width="100" height="100" />

Le jQuery qui ne sera pas ajouter à la classe:

$(".jimmy").click(function() {
    $(this).addClass("clicked");
});

Je sais que le SVG et jQuery sont travailler ensemble bien parce que j'ai peut cible de l'objet et de déclencher une alerte lorsqu'il est cliqué:

$(".jimmy").click(function() {
    alert('Handler for .click() called.');
});
  • Bon article ici: toddmotto.com/...
  • Donc la question de POURQUOI ne puis-je pas utiliser le jQuery *fonctions de classe reste sans réponse... Si je peux accéder aux propriétés des éléments SVG via jQuery fonction attr, pourquoi ne peut-on pas *fonctions de classe également le faire? jQuery ne parviennent pas?!?
  • Sérieusement, quelqu'un sait-il POURQUOI??
  • Minuscule bibliothèque qui ajoute cette fonctionnalité pour les fichiers SVG: github.com/toddmotto/lunar
  • Le "pourquoi" parce que jQuery utilise le "className" de la propriété, qui est une chaîne de propriété pour les éléments HTML, mais est un SVG Animé de la Chaîne pour les éléments SVG. Qui ne peut pas être attribué comme pour les éléments HTML. Ainsi, le code jQuery coups de tenter d'affecter la valeur.
  • Comme par stackoverflow.com/a/34698009/70345 la bonne réponse est: la mise à niveau vers l'une de jQuery 1.12.0, 2.2.0, ou de 3,0; ou une version ultérieure de ces derniers.

InformationsquelleAutor Don P | 2011-12-26