2010-08-31 4 views
4

J'ai créé une image avec Raphael. Je veux que la div contenant la toile de Raphael disparaisse en utilisant JQuery quand l'un des chemins de l'image cliquable (path10 dans l'exemple ci-dessous) est cliqué. Le code ci-dessous ne fonctionne pas, mais suis-je sur la bonne voie?Utilisation de JQuery avec Raphael

<script type="text/javascript" charset="utf-8"> 
    window.onload = function() { 
     var R = Raphael("canvas", 1050, 550); 
     var attr = { 
      fill: "#bbb", 
      "fill-opacity": 1, 
      stroke: "#222", 
      "stroke-width": 0.3, 
      "stroke-linejoin": "round" 
     }; 
     path10 = R.path("m 221.63509,150.81487 97.24682,0 0,89.68452 -97.24682,0 0,-89.68452 z").attr(attr); 
    }; 

    path10.node.setAttribute("id","barry"); 

    $(document).ready(function(){ 
     $("#barry").click(function(){ 
      $("#canvas").fadeOut(); 
     }); 
    }); 

</script> 

<body> 
    <div id="canvas"></div> 
</body> 

Merci pour toute aide!

Répondre

1

On y est presque ... ceci fonctionne (testé sur Firefox 3.6.8):

<body> 
<script type="text/javascript" charset="utf-8"> 
    $("document").ready(function() { 
     var R = Raphael("canvas", 1050, 550); 
     var attr = { 
      fill: "#bbb", 
      "fill-opacity": 1, 
      stroke: "#222", 
      "stroke-width": 0.3, 
      "stroke-linejoin": "round" 
     }; 
     path10 = R.path("m 221.63509,150.81487 97.24682,0 0,89.68452 -97.24682,0 0,-89.68452 z").attr(attr); 
     path10.node.setAttribute("id","barry"); 

     $("#barry").click(function(){ 
      $("#canvas").fadeOut(); 
     });  
    }); 

</script> 

<div id="canvas"></div> 
</body> 
+0

Smashing! Fonctionne parfaitement, merci. – Bazley

+1

Ne jamais toucher la propriété de noeud. path10.click ( fonctionnera très bien –

+0

Je sais que cette question est vraiment ancienne, et j'apprécie les réponses, mais je suis curieux si vous connaissez un moyen de le faire en utilisant jquery avec plusieurs données variables que je reçois en utilisant JSP et JSTL? J'ai essayé de boucler et de créer plusieurs divs, mais j'ai un problème puisque mon premier morceau de code est dans 1 Raphael Function, et comme je ne peux pas créer de nouvelles divs dans un script, j'ai dû créer une boucle , qui a créé divs, avec des scripts, mais cela n'a pas fonctionné ... Une idée de comment le faire fonctionner? – XaolingBao