Le fichier concerné est le suivant : carte Europe, légèrement modifié au niveau des couleurs.
Ce fichier associe un id à chaque pays. Pour la France, on a par exemple l'identifiant fr.
Je voudrais donc pouvoir faire ceci en Javascript (avec jQuery) :
$('#fr').click(function ()
{
alert('Ok');
});
Mais le code XML du fichier SVG n'étant pas dans le corps du fichier HTML, Javascript ne connait pas cet id (le code fonctionne en plaçant le contenu du SVG directement dans le HTML, mais je trouve que ce n'est pas très propre, et peut-être pas en accord avec les standards).
J'aimerais donc savoir s'il existe une solution pour appliquer les évènement Javascript au contenu du fichier SVG ?
@Golmote : j'ai regardé du côté de Raphael, mais redéfinir tout le SVG en Javascript ne m'intéresse pas (ou alors j'ai raté une méthode :/).
@miclebowski : je n'avais pas vu ton message, mais je viens quand même d'aller y jeter un coup d'oeil.
Finalement, l'astuce réside dans le fait qu'il faut travailler sur le SVG au moment où il est chargé. C'est à dire :
document.getElementById('zone_euro').addEventListener('load', function ()
{
var doc = $(this.contentDocument); // var doc = this.contentDocument;
var fr = $('#fr', doc); // var fr = doc.getElementById('fr');
fr.hover(function ()
{
$(this).css('fill', '#F00');
}, function ()
{
$(this).css('fill', '#2A7FFF');
});
}, false);
zone_euro correspond à l'id de ma balise <object>. En commentaire j'ai mit le code pour ceux qui n'utilisent pas jQuery
Merci à vous deux pour votre aide ! Qui aurait penser qu'il soit si difficile d'appliquer du Javascript sur un objet SVG xD
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.