onfocus Mozilla Firefox
fragezeichen
- javascript
0 Christian S.0 JürgenB0 Christian S.0 JürgenB
Hi,
ich habe eine dynamisch erzeugte Tabelle mit eindeutigen id's für jede Zelle.
Wenn ich auf Pfeil nach unten drücke, wird die nächste Zelle fokussiert:
document.getElementById(zeile).blur();
zeile=zeile+1;
document.getElementById(zeile).focus();
Die neue Zelle reagiert auf onfocus, die alte auf onblur:
<td
onFocus="this.bgColor='#A6CAF0'; this.style.color='#FFFFFF';"
onBlur="this.bgColor='#FFFFFF'; this.style.color='#000000';"
Das heißt, es ändern sich Hintergrundfarbe und Schriftfarbe. Die Zelle wird "markiert". Das funktioniert auch soweit super im IE, aber im Firefox tut sich nichts. Hab schon nach lange gesucht, aber nichts gefunden...
Bitte helft mir!!! Liegt das Problem an Firefox? An onfocus?
Vielen Dank im Voraus
Hi,
dein Code sieht soweit ok aus...
Ich kann nur sagen, dass ich neulich auch Problem mit blur und focus im Mozilla hatte.
Ich hatte beim document.onclick ein blur Event auf einer Textbox ausgelöst.
Klickte ich aber auf eine Select Liste (wodurch auch das blur ausgelöst wurde) öffnete diese sich nicht mehr, oder aber man konnte keine Auswahl mehr treffen. Beide Element hatten ein focus und ein blur event. Weiß aber nicht ob es daran lag.
ganz komisch.
Da fällt mir aber gerade ein: ein <td> kann doch gar keinen focus enthalten, oder? Schreib mal noch das tabindex Attribut rein. Vielleicht gehts dann.
ansonsten vielleicht mal die EventHandler kleinschreiben, damit es XHTML konform ist.
Gruß
Christian
Also an der Kleinschreibung liegt's nicht. Und ein <td> kann man auch fokussieren - sonst würde es ja im IE nicht funktionieren.
Allerdings habe ich nach weiterem rumprobieren herausgefunden, dass der onfocus-Eventhandler im <td> tag vom Firefox ignoriert wird...
Nachdem ich die tabindex reingeschrieben hab, hat's tatsächlich funktioniert (danke schön!! kann mir einer erklären warum???), allerdings habe ich jetzt ein hässliches gepunktet Rechteck um die Zelle...
Gibt's noch ne andere Möglichkeit??
Danke
...ein hässliches gepunktet Rechteck um die Zelle...
Gibt's noch ne andere Möglichkeit??
td:focus { outline:0; }
mfg Beat
Hi,
Und ein <td> kann man auch fokussieren - sonst würde es ja im IE nicht funktionieren.
Bitte gewoehne dir ab, derart duemmlich zu "argumentieren".
MfG ChrisB
Hallo fragezeichen,
document.getElementById(zeile).blur();
zeile=zeile+1;
document.getElementById(zeile).focus();
das sieht so aus, als ob deine IDs reine Zahlen sind. Das ist nicht richtig. Siehe z.B. http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name.
Gruß, Jürgen
Hi,
das sieht so aus, als ob deine IDs reine Zahlen sind. Das ist nicht richtig. Siehe z.B. http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name.
Wieso denn das? Wenn man in JavaScript Variablen vom Typ String mit Variablen vom Typ Number verknüpft kommt ein String heraus.
var zeile = "meineId";
zeile = zeile + 1; // ==> zeile == "meineId1"
Gruß!
Hallo Christian,
Wieso denn das? ...
da hast du recht. Aber letztendlich weiß nur fragezeichen, wie seine IDs aussehen. Ich habe jedenfalls den Verdacht, das seine IDs die Zeilennummern sind. Mal sehen, wer die bessere Glaskugel hat.
Gruß, Jürgen