Max: Funktion gesucht!

Hallo!

Gibt es eine Javascript-Funktion, die eine Funktion ohne while- oder if-Abfrage einfach um einen festen Wert wiederholt?

Also quasi so: repeat(Irgendeine Funktion, 3 mal)

Danke für alle Antworten!

  1. Hello out there!

    Gibt es eine Javascript-Funktion, die eine Funktion ohne while- oder if-Abfrage einfach um einen festen Wert wiederholt?

    Also quasi so: repeat(Irgendeine Funktion, 3 mal)

    Du suchst die for-Schleife.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. Die hatte ich vergessen mit while- und if-Schleife zu erwähnen.
      Ich möchte die folgende Funktion einfach x-mal wiederholen, ohne die Wiederholung an irgendwelche Bedingungen zu koppeln. Vielleicht ist meine Frage zu einfach.

      function hoch() {
      window.scrollBy(0, -10);
      }

      Danke nochmal!

      1. Hi,

        Die hatte ich vergessen mit while- und if-Schleife zu erwähnen.
        Ich möchte die folgende Funktion einfach x-mal wiederholen, ohne die Wiederholung an irgendwelche Bedingungen zu koppeln. Vielleicht ist

        Das ist ein klassischer Anwendungsfall für eine for-Schleife.

        for(var i=0;i<10;i++)
        {
        ...
        }

        Wird immer genau 10mal wiederholt.

        mfG,
        steckl

        1. Ok. Funktioniert. Danke!

          1. Funktioniert doch nicht so richtig.

            Ich versuche schon seit zwei Tagen verzweifelt eine Funktion zu erstellen.
            Die Funktion soll bei Klicken auf einen Div am oberen Bildschirmrand jeweils um die Höhe des Anzeigefensters nach oben scrollen, wobei der Scrollvorgang sichtbar sein soll.

            Diese Funktionen kann ich aus folgenden Gründen nicht benutzen:

            1. Variante (http://www.maxwalker.de/test/variante1.html)
            function hoch() {
              var y = 0;
              if (window.pageYOffset) {
                y = window.pageYOffset;
              }
              else if (document.body && document.body.scrollTop) {
                y = document.body.scrollTop;
              }
              if (y > window.innerHeight) {
                window.scrollBy(0, -10);
                setTimeout("hoch()", 1);
              }
            }

            • scrollt nur zu einer festen Position (scrollt solange wie die vertikale Scrollposition kleiner als die einfache Fensterhöhe ist)
              (Desweiteren ist es problematisch, dass das scrollen nur in 10-Pixel-Schritten erfolgt, weil dadurch bei Fensterhöhen, die nicht durch 10 teilbar sind, der Abschluss nicht richtig ist. Kleinere Schritte sind leider nicht mögich, da die Zeit bei setTimeOut nicht kleiner als 1ms sein darf, wodurch das Scrollen ewig dauert.)

            2. Variante (http://www.maxwalker.de/test/variante2.html)

            function hoch() {
            var a = window.innerHeight / 10;
            for(var i=0; i<a; i++) {
            window.scrollBy(0, -10);
            }
            }

            --> http://www.maxwalker.de/test/variante2.html

            • scrollt zwar um einen bestimmten Wert nach oben (ohne feste Positionsangabe), der Scrollvorgang ist aber nicht sichtbar

            Freue mich über jede Hilfe!

            1. Hallo,

              Freue mich über jede Hilfe!

              Ich empfehle Dir das prototype-Framework. Das ist recht stabil, schnell und um Browserkompatibilitäten brauchst Du dich nicht zu kümmern.

              Hier runterladen. Als erstes Script in deine Seite einbinden.
              Und (unter anderem) hier etwas Dokumentation dazu.

              Da gibt es eine Menge nützliche Funktionen für dein Problem. z.b. each für Arrays, oder realOffset.

              Ansonsten bleibt zu sagen, das es eher problematisch ist, das mit Javascript zu machen.
              Es sei denn, Du implementierst es zuerst normal im HTML - mittels den üblichen Ankern - und setzt dann darauf, falls Javascript aktiviert ist, deine Version, weich zu scrollen.

              Stichwort: barrierefreies Javascript.

              Gruß, Nils

              --
              Es gibt keine Lösung, weil es kein Problem gibt. (Duchamp)
              1. Vielen Dank, Nils!
                Ich werde mich mal einarbeiten.

                1. Hallo,

                  Vielen Dank, Nils!

                  Vielen Dank fürs Feedback. Mögen Wir ganz besonders 8-)

                  Gruß, Nils

                  --
                  Es gibt keine Lösung, weil es kein Problem gibt. (Duchamp)
      2. Hello out there!

        Die hatte ich vergessen mit while- und if-Schleife zu erwähnen.

        „Da soll nochmal jemand sagen, es gäbe keine if-Schleife …“ (MudGuard) [ZITAT693]

        Ich möchte die folgende Funktion einfach x-mal wiederholen, ohne die Wiederholung an irgendwelche Bedingungen zu koppeln.

        Du _hast_ eine Bedingung: x-mal.

        Wiederholen heißt Schleife. Ist die Anzahl der Wiederholungen vorher schon dekannt, bietet sich die for-Schleife an.

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. hi Max,
    das ist eine Lösung die mir einfallen würde, doch
    ich frage mich warum du keine Schleife benutzen willst?

    <script type="text/javascript">
    count = 0;
    window.setInterval('test()', 10);

    funktion test()
    {
     count++

    if(count <= 3)
     {
      // Hier die funktion
     }
    }
    </script>

    mfg K42B3