2012-04-13 24 views
-2

Auf my page, wenn ich mouseover einen Zustand, der Hyperlink auf der rechten Seite ändert sich in einen Hover-Stil. Kann mir jemand vorschlagen, wie ich das Gegenteil bewirken könnte? Wenn ich einen der Hyperlinks auf der rechten Seite schwebe, wird der Status hervorgehoben (wie wenn ich über den Status selbst schwebe)?Wie erstelle ich ein Highlight bei mouseover?

+2

Sie müssen nur den umgekehrten Weg gehen. – xdazz

+1

@Jeff könnten Sie bitte Ihren Beitrag aktualisieren, um den Code für den Mouseover und Mouseout zu enthalten. Auch die HTML-Quelle für die Image-Map und ein Beispiel für den HTML-Code für die Links wäre nett. Willkommen bei StackOverflow. – rlemon

+0

Die Frage ist jetzt für zukünftige Leser ohne den Code nutzlos. Gute Arbeit OP! – Sparky

Antwort

1

Sehr einfach mit jQuery's .trigger();

als Beispiel: $('#A0').trigger('mouseover'); würde das erste Element in der Karte (Washington) markieren.

So <a class="staffs staff-A0" href="#">Washington</a> Sie könnte dies zu dem Mouseover-Ereignis hinzu:

var map_element_id = '#' + this.className.split('-')[1]; 
$(map_element_id).trigger('mouseover'); 

und natürlich onMouseOut auch behandelt werden muss. Es gibt viele Möglichkeiten, die Zuweisung der Variable map_element_id zu handhaben. Ich schlage vor, dass Sie ein separates Attribut zuweisen, um dieses zu speichern, anstatt einen Klassennamen (vielleicht Data-Map-ID?). Das Teilen auf "-" funktioniert mit diesem Beispiel, aber stellen Sie sich vor, Sie fügen dem Element, das '-' enthält, weitere Klassennamen hinzu, dies würde fehlschlagen.

+0

ja, und du bist Punkt? – rlemon

+0

die Karten-ID ist 'A0' nicht 'starff-A0' – rlemon

+0

Oh ... jetzt bekomme ich es, mein schlechtes;) – Starx

0

Ruft die ID des Kartenbereichs ab und löst das mouseover-Ereignis aus.

$('.staff').mouseover(function() { 
    var id = $(this).attr("class").split("-")[1]; 
    $("#"+id).trigger('mouseover'); 
}); 
+0

warum alles von 'this' mit jQuery umwickeln, wenn die nativen Methoden einfacher und schneller sind. this.className.split ('-') [0]; macht in einer Zeile, was Sie in zwei mit weniger Leistung tun (nicht, dass es in diesem Beispiel wichtig wäre). Manchmal sind wir zu schnell, um Dinge in einem $ ( – rlemon

+0

@rlemon) zu verpacken, Sie haben Recht, aber in diesem Fall ist es nahe neglegeable – Starx

+0

aber gute Praktiken zu lernen ist nie vernachlässigbar: P ist, wie gute Programmierer schlechte Angewohnheiten bekommen . – rlemon