Tanja: Function durch Button beenden

Hallo!
Wie kann ich mit Javascript eine Function die durch den Befehl

'window.setTimeout("funktion()",15000)'

in (hier) 15 sekunden erst gestartet wird, durch einen Button abbrechen?

Danke,
Tanja

  1. Hi,

    ein Blick in SELFHTML bringt die Lösung:

    http://selfhtml.teamone.de/javascript/objekte/window.htm#clear_timeout

    Tschö...

    Alex :)

    1. Hi,

      ein Blick in SELFHTML bringt die Lösung:

      http://selfhtml.teamone.de/javascript/objekte/window.htm#clear_timeout

      Tschö...

      Alex :)

      Dankeschön!
      Das habe ich aber schonmal ausprobiert. Ich möchte die Funktion aber abbrechen bevor sie überhaupt angefangen hat. geht das damit auch?
      :}

      1. Hi,

        das verstehe ich nicht ganz! Erkläre das doch mal genauer, denn die Antwort, die Funktion garnicht aufzurufen kann es ja nicht sind
        ;)

        Also ich komme auf Deine Website und habe dann 15 sec. Zeit, den Aufruf einer Funktion zu unterbinden, ansonsten passiert irgendwas. sehe ich das so richtig?

        Wenn ja, mach es wie im SelfHTML-Beispiel. Das klappt dann auch.

        Viele Grüße...

        Alex :)

        1. Hi,

          das verstehe ich nicht ganz! Erkläre das doch mal genauer, denn die Antwort, die Funktion garnicht aufzurufen kann es ja nicht sind
          ;)

          Also ich komme auf Deine Website und habe dann 15 sec. Zeit, den Aufruf einer Funktion zu unterbinden, ansonsten passiert irgendwas. sehe ich das so richtig?

          Wenn ja, mach es wie im SelfHTML-Beispiel. Das klappt dann auch.

          Viele Grüße...

          Alex :)

          Ich erkläre es dir:
          Ich soll einen Einarmigen Banditen programmieren.
          Wenn man einen Button drückt soll die eine Walze sich anfangen zu drehen. Mit einem Stop-button kann man die dann wieder aufhalten.
          Drückt man jedoch nicht die Stop taste soll sich die walze nach 15 sek von alleine anhalten. das hab ich mit diesem 'window.setTimeout("stop()",15000)' befehl programmiert.
          Wenn man aber den stop button drückt, stoppt die walze zwar, aber nach 15 sekunden stopt sie nochmal! Und das will ich verhindern ^-^'
          verstehst du?

          gibt es nicht sowas wie
          If (button gedrückt)
          {
          stop window.setTimeout("stop()",15000);
          }

          oder sowas? :)

          1. Hallo,

            <script>

            function start_walze() {
             ...

            aktiv = window.setTimeout("stop2()", 15000);
             }

            function stop2()  {
             ...
             }

            function stop()  {
             ...
             window.clearTimeout(aktiv);
             }
            </script>

            Ok, ich starte die Walzen per Button mit start_walzen(). Es wird ein timeout mit 15 sec. gesetzt.

            Nach 15 Sec. wir die Funktion stop2() aufgerufen, die die Walzen stoppt. Der Timeout wird nicht gelöscht, weil unnötig.

            Falls die Walzen früher gestoppt werden (sollen), rufe ich mit einem Button stop() auf. Die Walzen werden wieder gestoppt und der Timeout, der noch aktiv ist, gelöscht. Ein doppeltes Stoppen ist so eigentlich verhindert, da der Aufruf von stop2() ja nicht mehr stattfindet...

            In stop() und stop2() stehen die gleichen Anweisungen, um die Walzen zu stoppen. Nur in stop() steht zusätzlich der Befehl zum löschen der Walzen...

            Ich habe das zwar nicht ausprobiert, aber eigentlich sollte es klappen.

            Viel Erfolg...

            Alex :)

            1. Hallo,

              <script>

              function start_walze() {
              ...

              aktiv = window.setTimeout("stop2()", 15000);
              }

              function stop2()  {
              ...
              }

              function stop()  {
              ...
              window.clearTimeout(aktiv);
              }
              </script>

              Ok, ich starte die Walzen per Button mit start_walzen(). Es wird ein timeout mit 15 sec. gesetzt.

              Nach 15 Sec. wir die Funktion stop2() aufgerufen, die die Walzen stoppt. Der Timeout wird nicht gelöscht, weil unnötig.

              Falls die Walzen früher gestoppt werden (sollen), rufe ich mit einem Button stop() auf. Die Walzen werden wieder gestoppt und der Timeout, der noch aktiv ist, gelöscht. Ein doppeltes Stoppen ist so eigentlich verhindert, da der Aufruf von stop2() ja nicht mehr stattfindet...

              In stop() und stop2() stehen die gleichen Anweisungen, um die Walzen zu stoppen. Nur in stop() steht zusätzlich der Befehl zum löschen der Walzen...

              Ich habe das zwar nicht ausprobiert, aber eigentlich sollte es klappen.

              Viel Erfolg...

              Alex :)

              Wow! Dankeschön!!