utman6: Object in javascript erstellen, mit settimeout in einer methode?

Beitrag lesen

wie kann man es dann sinvoller schreiben? Hab noch ein problem (+ dem was ich vorher geschrieben hatte :) )

Mein Object bekommt die ein atribut namens "hidetimer". Warum kann ich es in der einen Methode nur über "this" ansprechen, wobei es in der anderen methode, welche mit settimeout aufgerufen wird, ohne this angesprochen werden muss. Gibt da da evtl. noch einen anderen besseren weg?

Hier mein aktueller Code:

<html>
<head>
 <script type="text/javascript">
 /************************************
 * Klasse
 * Konstruktor für ein Submenüobjekt
 ************************************/
 function create_submenulayer(name)
 {
    //Atribute
    this.name      = name;
    this.hidetimer = 1;

/*****************************
    * Methode hide_action()
    * versteckt das Object
    *****************************/
    this.hide_action = function()
    {
         //alert(hidetimer)
         document.getElementById(name).style.visibility = "hidden";
      clearTimeout(hidetimer);
    }

/********************************
    * Methode hide()
    * Ruft die Methode "hide_action"
    * nach X-sekunden verzögerung auf.
    **********************************/
    this.hide = function(speed)
    {
         //alert(this.hidetimer)
      clearTimeout(this.hidetimer);
      hidetimer = window.setTimeout(this.hide_action,speed);
    }

}
 </script>
    <script type="text/javascript">
     //Objekt erstellen
  Layer1 = new create_submenulayer("MeinLayer1");
  Layer2 = new create_submenulayer("MeinLayer2");

function hidetest(objekt)
      {
     objekt.hide(1000)
   }
 </script>
</head>
<body>
 <div id="MeinLayer1" style="position:absolute; visibility:visible; left:0px; background-color:red; width:100px; height:200px;" >
   Layer1
 </div>

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

<br><br><br><br><br><br><br><br><br><br><br><br>
 <br><br><br><br><br><br><br><br><br><br><br><br>
    <a href="#" onClick="hidetest(Layer1);">[wegmach]</a><br>
    <a href="#" onClick="hidetest(Layer2);">[wegmach]</a>
</body>
</html>