2016-07-24 19 views
0

OnmouseÜber Bilder #About, #Contact oder #Blog Ich möchte das Attribut abhängig davon, welcher Link mit einer switch-Anweisung über den Mauszeiger bewegt wird, ändern. Es funktioniert jedoch nicht, wenn ich den Schalter in eine Funktion platziere oder versuche, dem Schalter einen Namen zu geben. Hier ist, was ich habe:Wie verwenden Sie onMouseOver mit einem Switch?

<g id="About" onmouseover="myFunction(this)"></g> 
<g id="Contact" onmouseover="myFunction(this)"></g> 
    <g id="Blog" onmouseover="myFunction(this)"></g> 

<script type="text/javascript"> 


      switch myFunction (obj.id) { 
    case About: 
        console.log (obj.id); 
     break; 
    case Contact: 
        console.log (obj.id); 
     break; 
    case Photos: 

        console.log (obj.id); 
     break; 
    case Videos: 

        console.log (obj.id); 
     break; 
    case Home: 

      console.log (obj.id); 
     break; 
    case Online: 

        console.log (obj.id); 
     break; 
    case Blog: 

        console.log (obj.id); 
} 

Mein Inital Test ist wie folgt:

 function myFunction (obj) { 

alert (obj.id); 

      switch (obj.id) { 
    case About: 
        console.log (obj.id); 
     break; 
    case Contact: 
        console.log (obj.id); 
     break; 
    case Photos: 

        console.log (obj.id); 
     break; 
    case Videos: 

        console.log (obj.id); 
     break; 
    case Home: 

      console.log (obj.id); 
     break; 
    case Online: 

        console.log (obj.id); 
     break; 
    case Blog: 

        console.log (obj.id); 
} 



} 

Antwort

1

Ihre Fälle sollten Zeichenfolgen sein, es sei denn, Sie haben sie als Variablen zugewiesen, z. B. "About" anstatt "About".

+0

Danke! Ich habe solche Switches nie zuvor verwendet und habe nicht berücksichtigt, dass das Beispiel Zahlen anstelle von Strings verwendet, also musste ich Quotes hinzufügen. –

0

Zunächst einmal eine tatsächliche Funktion machen, nicht ein Schalter, der Sie dachten, war eine Funktion.

function myFunction(obj) { 

} 

dann den Schalter innerhalb der Funktion hinzufügen:

switch (obj.id) { 

} 

Als nächstes stellen die Fälle innerhalb des Schalters, wie Sie getan haben. Und übrigens, darf kein Leerzeichen zwischen der offenen Pars und der Name der Funktion, wie Sie für jeden hatte

console.log (obj.id); 

Hofft, dass es funktioniert. Wenn nicht, warum?

+0

Ich hatte es als eine Funktion zunächst, deshalb habe ich im ursprünglichen Beitrag erwähnt, dass ich versucht habe, es in eine Funktion zu setzen. Ich habe den Kommentar aktualisiert, um diesen Code einzuschließen. Die Warnung funktioniert, und es gibt keine Fehler, aber der Schalter wird immer noch nicht funktionieren. –