Hi,
ich erhalte aus einem Ajax-Request eine Liste zurück (<ul><li>..</li></ul>
) durch die ich mit den Pfeiltasten navigieren will.
Dazu speichere ich die Liste als naviElement
und steuere dort dann curElement = naviElement.firstChild
bzw. dann next- und previousSibling an. Im Ausgangs zustand ist also curElement = naviElement.firstChild
. Wenn ich dann *das erste Mal* die Pfeiltaste runter drücke, wird *das zweite Element* angesprochen (das erste Element war ja das aktuelle und dann gehts mit nextSibling weiter).
Es soll beim ersten Mal aber das erste Element ausgewählt werden. Vor dem ersten Tastendruck soll also quasi kein Element ausgewählt sein. Und genau hier gibt's das Problem im Internet Explorer.
Setze ich zu Beginn curElement = null;
wird bei Tastendruck zwar dann korrekt das erste Element angesprochen, jedoch meldet mir der IE: "Meldung: Objekt erforderlich / Zeile: 95 / Zeichen: 9 / Code: 0". Obwohl dort doch eigentlich korrekt curElement = naviElement.firstChild
gesetzt wird (siehe Code unten). Das Script läuft dann zwar, aber es erscheint eben diese Meldung, die ich gerne noch beseitigen möchte. Firebug meldet mir an dieser Stelle nichts.
this.updateList = function (obj_new_list)
{
obj_new_list.innerHTML = clearSpaces(obj_new_list.innerHTML)
naviElement = obj_new_list;
curElement = naviElement.firstChild;
}
...
case 40: // runter
if(curElement)
{
if(curElement.nextSibling)
{
curElement = curElement.nextSibling;
document.getElementById(txt_id).value = curElement.firstChild.id;
}
}
else
{
curElement = naviElement.firstChild;
document.getElementById(txt_id).value = curElement.firstChild.id; // Zeile 95 die den Fehler auslöst "Objekt erforderlich"
}
break;
...
Hat jemand eine Idee, wie man dem IE die Flausen austreiben kann?
Danke.