Der Martin: sliding div: IE - Error obj is undefined

Beitrag lesen

Hallo,

hab den code jetzt ein wenig geaendert, im IE taucht keine fehlermeldung mehr auf, aber die sliding funktion geht erst wenn man die seite "refresht" vorher nicht...

und im Firefox (oder anderen Browsern) dürfte es ebenso sein.

...kanns mir auch nicht ganz erklaeren..

Es ist eigentlich trivial. Es gibt doch nur eine Stelle, an der du obj überhaupt einen Wert zuweist. Naja, eigentlich zwei, aber sie liegen logisch so dicht zusammen, dass ich sie als eine betrachte:

function checkCookie(name) {
    var x = readCookie(name)
    if (x == 'false') {obj = document.getElementById("boxDiv");
        obj.style.left = "-130px";
    
    } else if (x == 'true') {
        obj = document.getElementById("boxDiv");
        obj.style.left = "0px";
    }
}

Was passiert, wenn noch gar kerin Cookie gesetzt ist, also beim ersten Aufruf der Seite? Dann ist weder die Bedingung x=="false" noch x=="true" erfüllt, weil x dann null ist (und der Wert null niemals mit einem nicht-leeren String als gleich interpretiert werden kann).
Die Abfrage ist also falsch formuliert - oder du bräuchtest noch einen dritten Fall, nämlich "weder, noch". Warum steht die Zuweisung obj = document.getElementById(...) eigentlich zweimal identisch in beiden Zweigen des if-Statements? Das kannst du ebensogut rausziehen - das wäre übrigens auch ein möglicher erster Schritt zur Lösung.

So long,
 Martin

--
F: Was ist ekliger als ein angebissener Apfel mit einem Wurm drin?
A: Ein angebissener Apfel mit einem halben Wurm.