snoot: "Object erforderlich" - obwohl vorhanden

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.

  1. Hi,

    "Meldung: Objekt erforderlich / Zeile: 95 / Zeichen: 9 / Code: 0".

    wenn es sich um eine eingebundene JavaScript-Ressource handelt, steckt der Fehler in Zeile 94.

    Obwohl dort doch eigentlich korrekt curElement = naviElement.firstChild gesetzt wird (siehe Code unten).

    Lasse Dir einmal jedes Objekt ausgeben, bevor Du auf dessen Eigenschaften zugreifst.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. »» Obwohl dort doch eigentlich korrekt curElement = naviElement.firstChild gesetzt wird (siehe Code unten).

      Lasse Dir einmal jedes Objekt ausgeben, bevor Du auf dessen Eigenschaften zugreifst.

      Cheatah

      Einfach mit alert?

      Da bekäme ich zwischen Zeile 94 und 95 mit "alert(curElement);":

      1. Meldung: [object HTMLLIElement]
      2. Meldung: null
      3. Meldung: null

      1. Da bekäme ich zwischen Zeile 94 und 95 mit "alert(curElement);":

        1. Meldung: [object HTMLLIElement]
        2. Meldung: null
        3. Meldung: null

        (Ups, wollte nochmal auf vorschau klicken)

        wieso läuft es denn dennoch, obwohl hier offentlsichtlich null gesetzt ist?

      2. Okay, Fehler gefunden. Allerdings an ganz anderer Stelle :D

        Trotzdem danke für die Hilfe.