• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tastatur und Maus in der Bedienung gleichzeitig beisammen

andynail

Mitglied
Hallo zusammen

gerne würde ich Tastatur und Maus auf der gleichen Linkliste steuern lassen. Das heist, dass wenn ich mit der Pfeiltaste nach unten, der Link nach unten / der nächste Link ausgewählt wird. Und fahre ich mit der Maus über ein Link, soll dieser auch als solcher markiert werden, wie das mit css und hover realisierbar ist.

Doch damit der nächste Link bei der Tastatursteuerung markiert wird, muss das ja eine Funktion realisieren, doch steht dann auch gleich noch die Maus über den Objekten kann es ja passieren das gleich 2 Links markiert werden. Und so realisierte ich das damals, dass per css der Link bei fokuserhalt entsprechend formatiert werden soll und es kein hover effekt gab. Besser setzte die Funktion bei Tastatursteuerung den Funkus auf den Link und dieser setzte mit der Funktion onmouseover den Fokus auf sich.

Das funktionierte auch einwandfrei, vorausgesetzt man befand sich bereits auf der Seite. War das Fenster bisher aber noch im Hintergrund, wollten die Links aber nicht markiert werden.

Also wie realisiere ich das jetzt? Denn was wohl stört ist das hover, bei dem ich nicht weis wie ich dem dagegen kommen kann, das aber wohl dafür sorgt das Links sofort markiert werden!

Also würde ich mich über jede Hilfe sehr freuen und bedanke mich für jede Bemühungen!

Also schonmal vielen Dank und Gruß Andreas
 
Werbung:
Also Hallo

und sorry das dass hier drin jetzt so aussieht, mit meinen Beiträgen/Hilfeanfragen, was so nicht gewollt war! Und auch der Zeitpunkt mich erst jetzt zu melden. Aber ich hatte mich halt in letzter Zeit nicht getraut und wollte jetzt mal etwas Code veröffentlichen, mit dem ich das jetzt geschafft habe, und aber auch mit der Anfrage ob das nicht ein wenig besser gehen könnte:

Und zwar hatte ich mir bereits ein Code für die Reaktion auf Tastendruck geschhrieben gehbt und mit folgendem ergänzt:

case 38:
if (top.EntryIndex > -1 && top.document.activeElement != top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex])
{
top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex].className = "EntryStandard"
top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex].onmousover = function() {this.className = 'Entries'; this.onmouseover = function() {this.focus(); top.EntryIndex = $(this).parent().parent().index()}}
}
top.EntryIndex = top.EntryIndex -1
if (top.EntryIndex <= -1) top.EntryIndex = top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a").length-1
top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex].focus()
breakcase 40:
if (top.EntryIndex > -1 && top.document.activeElement != top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex])
{
top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex].className = "EntryStandard"
top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex].onmouseover = function() {this.className = 'Entries'; this.onmouseover = function() {this.focus(); top.EntryIndex = $(this).parent().parent().index()}}
}
top.EntryIndex = top.EntryIndex +1
if (top.EntryIndex >= top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a").length) top.EntryIndex = 0
top.document.getElementsByName("Menues")[top.MenueID].getElementsByTagName("a")[top.EntryIndex].focus()
break

Das Erstellen der Menüs:

$Result = sqlite_query("SELECT * FROM Entries WHERE Ranges = ".($i)." ORDER BY DBID" , $db ,SQLITE_BOTH);

while($row = sqlite_fetch_array($Result))
{
$id = $row['ID'];
$Table = $row['Name'];
$DBID = $row['DBID'];
$DBName = $arr[$i];
$Datei = $row['File'];
$Parameter = "b=".($i+2)."&index=$id&db=$DBName&table=".urlencode("$Table");

echo "<tr><td><a href='#' Link='$Datei?$Parameter' onclick='OpenLink(this); MenueUp($i-1); this.blur()' name='Eintrag' id='$id' class='Entries' onmouseover='this.focus(); top.EntryIndex = $(this).parent().parent().index()'>$Table</a></td></tr>";

$Index++;
}

Aber wäre da etwas besser zu machen, worüber ich mich auch stark freuen würde von Euch etwas erfahren zu können, obwohl es momentan so aussehen würde als ob das dass Ganze recht gut funktionieren würde.

Aber ich wäre auf allerlei Vorschläge gespannt und mich auf jeden Fall auch für alle Bemühungen bedanken werde, so dass ich hoffe dies hier mit einem hoffentlich Bis dann verabschieden zu können.

Also schonmal Danke Gruß Andreas
 
Zuletzt bearbeitet:
Zurück
Oben