tobias: div bewegen mit style.top

Hallo,

ich habe schon alles probiert aber ich kann leider den fehler
nicht finden.
javascript sagt immer das es ein objekt erwartet.

vielen dank für eure hilfe

  
  
<script language="JavaScript">  
function scrollMenu(pos)  {  
  
  var pos;  
  
  document.getElementById('menu').style.top = pos + 'px';  
  
  pos++;  
  
  if(pos < "100") {  
    setTimeOut("scrollMenu('" + pos + "')", 1000);  
  }  
  
}  
</script>  
  

  1. hi,

    javascript sagt immer das es ein objekt erwartet.

    Nein, sowas "sagt" nur der Deppenbrowser.
    Teste mit einem anderen, der eine Javascriptkonsole besitzt, die ordentliche Fehlermeldungen liefert - Firefox zum Beispiel.

    function scrollMenu(pos)  {

    var pos;

    Was soll das?
    Vermutlich überschreibst du dir hier den übergebenen Parameter schon wieder.

    pos++;
      if(pos < "100") {

    Soll pos jetzt ein Literal sein, oder eine Zahl?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Wie auch immer,

      und ob "Deppenbrowser" oder nicht. Es wird ein Objekt erwartet: Heißt:
      Das Objekt (ID=menu) das du bewegen magst ist bis zum Scriptaufruf nicht vorhanden. Entweder du splittest das JS und machst den Aufruf erst nach der Deklaration des Menüs oder du packst das komplette JS dahinter. Trotzdem solltest du einmal erklären was du mit var pos; bewirken willst.

      Gruß
      Sascha

      hi,

      javascript sagt immer das es ein objekt erwartet.

      Nein, sowas "sagt" nur der Deppenbrowser.
      Teste mit einem anderen, der eine Javascriptkonsole besitzt, die ordentliche Fehlermeldungen liefert - Firefox zum Beispiel.

      function scrollMenu(pos)  {

      var pos;

      Was soll das?
      Vermutlich überschreibst du dir hier den übergebenen Parameter schon wieder.

      pos++;
        if(pos < "100") {

      Soll pos jetzt ein Literal sein, oder eine Zahl?

      gruß,
      wahsaga

      1. hallo,

        ich poste mal den ganzen quellcode. ja kann das sein das er im
        netscape 100% funktioniert und im IE gar nicht?

        sorry javascript ist nicht meine stärke.

        [code src=html]
        <html>
        <head>
          <title></title>

        <script language="JavaScript">
        var pos;

        function scrollMenu(pos)  {

        document.getElementById('menu').style.top = pos + 'px';

        pos++;

        if(pos < "5") {
            setTimeOut("scrollMenu('" + pos + "')", 1000);
          }

        }
        </script>

        </head>
        <body topmargin="0" leftmargin="0">

        <div style="background-color: #808080; width: 200px; height: 100px;" onMouseOver="scrollMenu('0')">a</div>
        <br>
        <div id="menu" style="background-color: #808080; width: 200px; height: 100px; position: absolute; top: -100px; border: 1px solid black;">a</div>

        </body>
        </html>
        [/html]

        vielen dank für antworten

        1. Hallo,

          besorg Dir als _erstes_ einen ordentlichen Brauser - ehrlich! Die Fehlermeldung im FF ist einfach und eindeutig: setTimeOut schreibt man setTimeout. Die ganze Syntax ist zwar etwas merkwürdig, aber trotzdem funktioniert's im FF nach dieser kleinen Korrektur.

          Gruß, Andreas

          --
          SELFFORUM - hier werden Sie geholfen,
          auch in Fragen zu richtiges Deutsch
    2. function scrollMenu(pos)  {

      var pos;

      Was soll das?
      Vermutlich überschreibst du dir hier den übergebenen Parameter schon wieder.

      nicht nur vermutlich. Da wird doch eine neue Variable erzeugt und die wird halt automatisch auf NULL gesetzt (oder war es UNDEFINED?)

      Gruß, Andreas

      --
      SELFFORUM - hier werden Sie geholfen,
      auch in Fragen zu richtiges Deutsch
      1. function scrollMenu(pos)  {

        var pos;

        Da wird doch eine neue Variable erzeugt und die wird halt automatisch auf NULL gesetzt (oder war es UNDEFINED?)

        Nein. Wenn pos schon definiert ist, macht var pos nichts.
        Wenn kein Parameter übergeben wurde, ist pos undefined, dann macht var pos auch nichts.
        In anderen Fällen macht ein var pos, dass pos === undefined gilt, das stimmt.

        Mathias

        1. stimmt. Ich hab das mal getestet. Ist das nun sinnvoll oder nicht? Ich finde nicht. Das heißt ja, wenn ich sicher gehen will, muß ich jede Variable mit var auch gleich initialisieren, um mich vor globaleren Varis zu schützen.

          Gruß, Andreas

          --
          SELFFORUM - hier werden Sie geholfen,
          auch in Fragen zu richtiges Deutsch