Autor Zpráva
Sylar
Profil
Zdravím,
mám takovýto script
  function zbyvaDoOdhlaseni() {
    var hod = document.getElementById('hodiny');
    var min = 20;
    var sec = 00;
    setCookie("log_in", true, min, '/', '', '');
    var timer = window.setInterval(
    
    function() {
      if (min < 5) hod.style.color = "#f00";
      hod.innerHTML = (min < 10 ? "0" + min : min) + " : " + (sec < 10 ? "0" + sec : sec);
      if (min == 0 && sec == 0) {
        clearInterval(timer);
        window.location.href = '/-/?logout';
        // hod.innerHTML = "Odhlášen";
        break;
      }
      if (sec == 0) { min--; sec = 59; }
      else { sec--; }
    }, 1000);
  }

Ohlašuje automaticky uživatele po 20 přesměrování na adresu /-/?logout kde je php script pro odhlášení. Script se spouští automaticky akcí onload u <body> . To co chci udělat je, aby měl uživatel možnost interval (těch 20 minut) prodloužit když najede nad prvek kde časomíra běží.
Dal jsem tomu prvku akci onmouseover="ZbyvaDoOdhlaseni();" a funguje to ALE ten script běží stále i z původního onload z <body> . V praxi to tedy vypadá tak že tam přes sebe skáčou tyto dva časy, pokud přejedu znova nad prvek s časomírou, skáčou tam tři atd atd.

O co se snažím, je udělat to tak, aby se script z počátku sám vyresetoval a poté znovu nastavil. Lze to nějak udělat ? to resetování a následné spuštění by mělo asi být ještě před
 var hod


Předem děkuji za nápady a podněty jak problém vyřešit
siginigin
Profil *
skus dat timer ako globalnu premennu. za zaciatku funkcie ZbyvaDoOdhlaseni() { timer = null; a potom timer = windows.setInterval(...

problem bude asi v tom ze pri kazdom onmouseover sa ti vyrobi novy timer, ktory potom bezi samostatne...
Sylar
Profil
siginigin:
okey super dal jsem timer jako globální ale místo timer = null; jsem tam hodil clearInterval(timer); a s tím to funguje, takže pohoda :-) díky moc

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0