Javascript setTimeout
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.