Javascript setTimeout

Kommentieren Feb 18 2008

 

habe gerade ein komisches Verhalten bei der setTimeout Funktion bemerkt.

Diese Funktion setzt den display Wert eines Elementes:

function showInfoText(id_of_element) {

        showObj = document.getElementById(id_of_element);



        if(showObj) {

            if(showObj.style.display == "none") {

                showObj.style.display = "";

            }

            else {

                                showObj.style.display = "none";

            }

        }

    }


Wenn ich nun diese Funktione mit setTimeout aufrufe bekomme ich nicht mehr die id_of_element als alphanumerischen Wert sondern es ist gleich ein Objekt ??

function test(id_of_element_to_toggle) {

          setTimeout("showInfoText("+id_of_element_to_toggle+")",1000)

}


Nun kommt ein Fehler, da man ja in der showInfoText ein alphanumerischen Wert erwartet mit dem man das Element anspricht.

Des Problems Lösung ?

function test(id_of_element_to_toggle) {

          setTimeout("showInfoText('"+id_of_element_to_toggle+"')",1000)

}


Man beachte die zusätzlichen einfachen Anführungszeichen innerhalb der Klammer.
Damit Funktioniert das Ganze so wie man es erwartet.

banana
out.