link-status (active) via javascript(OnEvent) setzen?
Martin
- javascript
Hallo!
Ich versuche den status eines links zu ändern, der sich innerhalb einer Tabelle befindet. Bisher rufen sowohl ein klick auf den link als auch ein klick auf die Tabellenzelle (per Javascript und "onMousedown") in einem anderen Frame eine neue Datei auf. (man muss also nicht den link treffen, um den menüpunkt auszuwählen, sondern nur die Zelle).
Mein Problem ist, dass ein Klick auf die Tabellenzelle den link nicht "active" setzt. Wenn ich den link betätige ist er "active" und damit weiß und unterstrichen und der Besucher wüsste, wo er sich befindet. Bei einem klick in die Zelle ändert dies natürlich den status des links nicht und man sieht nicht, wo man sich gerade befindet. Daher würde ich gern wissen, wie ich diese Status-Änderung nachträglich mit dem onmousedown-event verknüpfen kann (ich hab es mit den getelementbytagname usw. nicht geschafft auf diese Eigenschaft zuzugreifen, nur auf das Verknüpfungsziel (href).
Ach ja, der link-status ist in einer css-datei definiert.
Wär nett, wenn mir da jemand weiterhelfen könnte.
Gruß
Martin
PS: Bisher sieht eine Zelle (bzw. Zeile) in der Tabelle so aus:
<tr><td width=100% height=40 border=0 style="border-width:1px 0px; border-color:#FF8040;" onMouseDown="this.style. backgroundColor='black';javascript:Frame('startsei
te.htm','Daten');" onmouseover="this.style.borderStyle ='solid'; this.style.backgroundColor='white';" onMouseUp="this.style.backgroundColor='#4F915A';" onmouseout="this.style.borderStyle = 'none'; this.style.backgroundColor='#4F915A';"> <a class="type_1" href="startseite.htm" target="Daten">Grüße, Bürger!</a></td></tr>
Nun wollte ich etwas in der Art getElementById("link").document.style.a.link =
oder
getElementById("link").style.a.link =
oder
document.getElementById("link").style.a.link =
hinzufügen....
Gibt's eines davon überhaupt?
Hi,
Ich versuche den status eines links zu ändern, der sich innerhalb einer Tabelle befindet. Bisher rufen sowohl ein klick auf den link als auch ein klick auf die Tabellenzelle (per Javascript und "onMousedown") in einem anderen Frame eine neue Datei auf. (man muss also nicht den link treffen, um den menüpunkt auszuwählen, sondern nur die Zelle).
Warum brauchst Du da javascript? CSS reicht vollkommen, einfach den Link zum block-Element machen.
Mein Problem ist, dass ein Klick auf die Tabellenzelle den link nicht "active" setzt.
Meinst Du das, was in CSS :active heißt?
Wenn ja - das gilt nur während der Aktivierung des Links, also vom Moment des Maustastendrückens bis zum Maustastenloslassen (analog bei Tastaturauslösung).
Wenn Dein Browser :active anders anwendet, ist er a) fehlerhaft und b) vermutlich ein Internet Explorer.
cu,
Andreas
Ich versuche den status eines links zu ändern, der sich innerhalb einer Tabelle befindet. Bisher rufen sowohl ein klick auf den link als auch ein klick auf die Tabellenzelle (per Javascript und "onMousedown") in einem anderen Frame eine neue Datei auf. (man muss also nicht den link treffen, um den menüpunkt auszuwählen, sondern nur die Zelle).
Warum brauchst Du da javascript? CSS reicht vollkommen, einfach den Link zum block-Element machen.
Okay, ich versuchs nochmal: Ich möchte, das der link unterstrichen wird (wie als hätte man draufgeklickt), nachdem man in seine Tabellenzelle geklickt hat. Wenn man ihn normal anklickt, ändert er (auch nach dem Loslassen der Maustaste) seine Farbe auf weiß und wird unterstrichen, bis man woanders hinklickt. (man nennt das focus, um das klarzustellen)
Entschuldige diese Ungereimtheit.
Ich brauche javascript, weil das "onmousedown" geschehen soll und ich nicht weiß, wie ich das sonst bewerkstelligen kann...
Hi Martin,
Okay, ich versuchs nochmal: Ich möchte, das der link unterstrichen wird (wie als hätte man draufgeklickt), nachdem man in seine Tabellenzelle geklickt hat. Wenn man ihn normal anklickt, ändert er (auch nach dem Loslassen der Maustaste) seine Farbe auf weiß und wird unterstrichen, bis man woanders hinklickt. (man nennt das focus, um das klarzustellen)
Entschuldige diese Ungereimtheit.Ich brauche javascript, weil das "onmousedown" geschehen soll und ich nicht weiß, wie ich das sonst bewerkstelligen kann...
MudGuard hat dir ja schon die Lösung genannt.
Mach aus dem Link ein Blockelement, dann kannst du diesem Höhe und Breite zuweisen und ersparst dir somit jegliches Javascript.
http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#display
Gruß
Kurt
MudGuard hat dir ja schon die Lösung genannt.
Mach aus dem Link ein Blockelement, dann kannst du diesem Höhe und Breite zuweisen und ersparst dir somit jegliches Javascript.
http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#display
Ich verstehe leider nicht, wie nach einem klick auf eine Tabellenzelle der Text im Blockelement geändert werden soll (Die Seite, besser gesagt der Frame, soll ja nicht neu geladen werden).
Wärst du vielleicht so nett und verlierst noch ein paar Worte dazu?
Danke.
Martin
Hi Martin,
Ich verstehe leider nicht, wie nach einem klick auf eine Tabellenzelle der Text im Blockelement geändert werden soll (Die Seite, besser gesagt der Frame, soll ja nicht neu geladen werden).
Wärst du vielleicht so nett und verlierst noch ein paar Worte dazu?
Danke.
Dein Problem war ja nicht, wenn ich dich richtig verstanden habe, den Link umzuschreiben, oder?
Wenn du einen Link zu einem Blocklevelelement machst, dehnt sich der Linkbereich auf die angegebene Größe aus.
Wenn du beim Link nun die Abmessungen der Zelle angibst, wird so die gesamte Zelle klickbar und mit Pseudoformaten bearbeitbar(Naja, stimmt so nicht ganz, aber sonst würde es dich noch mehr verwirren).
Erstelle einfach mal testweise eine Tabelle mit einer Zelle, der du eine fixe Größe gibst.
Da fügst du irgendeinen Link ein.
Diesen Link formatierst du nun testweise per CSS mal so:
------------------------------------------------------------
a { font-weight:normal;color:#292C63;display:block;width:100%;height:inherit;text-decoration:none; }
a:link, a:visited { font-weight:normal;color:#292C63;display:block;width:100%;height:inherit;text-decoration:none; }
a:focus {
font-weight:bold;color:#D3E2ED;background-color:#292C63;display:block;width:100%;height:inherit;text-decoration:underline; }
a:hover { font-weight:normal;color:#D3E2ED;background-color:#292C63;display:block;width:100%;height:inherit;text-decoration:overline underline; }
a:active { font-weight:normal;color:#292C63;display:block;width:100%;height:inherit;text-decoration:none; }
Wenn du dir das Ganze dann anschaust, wirst du den Effekt erkennen.
Die Attribute und deren Werte kannst du nach Belieben ändern.
------------------------------------------------------------
Gruß
Kurt
Hallo Kurt!
Ich finde SelfHTML ja im allgemeinen sehr verständlich erklärt, aber _das_ hab ich aus deinem link echt nicht rauslesen können.
Die beschriebene Variante gefällt mir sehr gut. Sie ist einfacher und kürzer als mein "Monster-link".
Allein hätt ich das nie gefunden, diese Möglichkeiten waren mir total unbekannt.
Werde gleich morgen versuchen das richtig einzubauen.
Ich danke dir vielmals für deine Mühe!
Gruß
Martin