objekt erstellt mit javascript, problem :(

daggit

Grünschnabel
Hi,

ich hab mich mal daran gewagt und hab mir ein objekt in javascript erstellt. Dem objekt habe ich eine funktion zugewiesen, die das objekt nach kurzer verzögerung unsichtbar machen soll. Aber irgendwie haut das net so wirklch hin.
Wenn ich meine funktion die das objekt verstecken soll aufrufe, kann ich irgendwie nicht mehr auf das objekt / objektnamen zugreifen.
(siehe funktion hide())

Hier mal mein Quelltext


<html>
<head>
<script>
function submenulayer(name,left,top)
{
//Eigenschaten
this.name = name;
this.left = left;
this.top = top;
this.Timer = 0;

//Objekt initialisieren
this.init = function()
{
document.getElementById(this.name).style.left = 100;
}


//Funktion zum verstecken des objektes
this.hide = function()
{
alert(this.name)
//document.getElementById(this.name).style.visibility = "hidden";
}


//Funktion zum verzögerten aufruf
this.hideLayer = function()
{
this.Timer = window.setTimeout(this.hide,500); //HIER IST WAS FALSCH ?
}


//initialisieren
this.init();

}

</script>
</head>

<body>

<div id="MeinLayer" style="position:absolute; visibility:visible; left:0px; background-color:red; width:100px; height:200px;" >
Blablabla
</div>

<script>
//Objekt erstellen
Layer1 = new submenulayer("MeinLayer",2,3);
Layer1.hideLayer();
</script>


</body>
</html>
 
wie müsste es denn heissen? wie itegriere ich die window.settimeout funktion?... hab mich in OOP gerade erst eingearbeitet :(
 
Das Problem ist, dass du beim aufrufen der Funktion hide() per setTimeout() die Funktion submenulayer() bereits verlassen hast... die Objekteigenschaften stehen somit nicht mehr zur verfügung.

Du musst der Funktion hide() den Namen(oder sonstwas) somit auf anderem Wege zukommen lassen.
 

Neue Beiträge

Zurück