2013-12-16 20 views
5

Hallo Ich versuche, einige interaktive Inhalte aus Inkscape Bilder im Format von SVG zu erstellen. ich eine SVG-Datei durch, svg.load von http://keith-wood.name/js/jquery.svg.jsErsetzen Sie ein SVG-Element durch einen anderen Klick

bin Laden möchte ich einen Onclick Hörer auf die geladene svg hinzuzufügen, so dass ich eine andere SVG laden kann, sobald es angeklickt wird. Wie mache ich das? Der Ansatz im folgenden Kommentar ist fehlgeschlagen.

+0

Was ist mit dem Beispiel in der Quellseite? http://keith-wood.name/svg.html#load – Babblo

+0

Ich kann nicht sehen, wo das Element 'switchElement' definiert ist und überprüfen Sie das Plugin Nether sehen, wo kommst du mit dem Element' switchElemetn' – Jorge

+1

, wenn Sie den Klick auf möchten Ein Element in der Svg kann man so etwas ausprobieren [http://jsfiddle.net/wRFYn/](http://jsfiddle.net/wRFYn/) –

Antwort

0

Dies ist, wie ich es schließlich tat, ich die Elemente durch Chrome dev inspiziert. Werkzeuge und fand den Namen des Elements im SVG als Ziel-Listener (# layer1). Mit dem unten stehenden Code kann ich zwischen zwei verschiedenen SVGs hin- und herschalten

  function drawOpenSwitch(svg){ 
      var closed=false; 
      var changeSwitch = function(){ 

       $('#layer1').click(function() { 

       if(!closed){ 
        svg.clear(); 
        switchElement=svg.load('./3phase_switch_closed.svg', {onLoad: changeSwitch, addTo: true, changeSize: true}); 
       }else{ 
        svg.clear(); 
        switchElement=svg.load('./3phase_switch.svg', {onLoad: changeSwitch, addTo: true, changeSize: true}); 

       } 
       closed=!closed; 
       })}; 


      var switchElement=svg.load('./3phase_switch.svg', {onLoad: changeSwitch, addTo: true, changeSize: true}); 

      } 



      $(window).load(function(){ 
      $(function() { 
       $('#svgbasics').svg({onLoad: drawOpenSwitch}); 
      }); 
2

Da das Element beim Laden der Seite gerendert wird, sollten Sie auf ein Element klicken, das bereits vorhanden ist. zum Beispiel die document:

// Use this same as $(document).ready() 
jQuery(function($){ 

    // Listen for a click on the document but get only clicks coming from #svgbasics 
    $(document).on('click', '#svgbasics', function(){ 

    // this === #svgbasics element 
    drawSwitch(this); 

    }); 

}); 
Verwandte Themen