setTimeout() e clearTimeout()

Comments

Para controlar quando uma função Javascript será executada, use setTimeout(), que aceita dois argumentos. O primeiro argumento é a nome da função, e o segundo, em quanto tempo a função será executada (em milisegundos).

setTimeout

Para mudar o conteúdo de um div após dois segundos que o usuário passou o mouse em um link:

HTML:
  1.     <title>Dois segundos antes do aviso</title>
  2.     <script type="text/javascript">
  3.       function atualiza()
  4.       {
  5.         div = document.getElementById('aviso');
  6.         div.innerHTML = 'Fazem dois segundos que você passou o mouse no link';
  7.       }
  8.  
  9.       function avisoDemorado()
  10.       {
  11.         setTimeout("atualiza()", 2000);
  12.       }
  13.     </script>
  14.   </head>
  15.     <a href="#" onmouseover="avisoDemorado();">passe o mouse</a>
  16.     <br />
  17.     <br />
  18.     <div id="aviso"></div>
  19.   </body>
  20. </html>

Se você passar o mouse no link, remover o ponteiro de cima dele, e voltá-lo, ainda assim a função será executada. Mas existe um jeito de cancelá-la...

clearTimeout

Suponhamos que você queira cancelar a execução da função antes dos dois segundos. Para isso, você pode usar a função clearTimeout(). Ela aceita um argumento, que é qual tempo iniciado pelo setTimeout() devemos cancelar.

HTML:
  1.     <title>Dois segundos antes do aviso com cancelamento</title>
  2.     <script type="text/javascript">
  3.       function atualiza()
  4.       {
  5.         div = document.getElementById('aviso');
  6.         div.innerHTML = 'Fazem dois segundos que você passou o mouse no link';
  7.       }
  8.  
  9.       function avisoDemorado()
  10.       {
  11.         if (typeof(tempo) != 'undefined') {
  12.             clearTimeout(tempo);
  13.         }
  14.         tempo = setTimeout("atualiza()", 2000);
  15.       }
  16.     </script>
  17.   </head>
  18.     <a href="#" onmouseover="avisoDemorado();">passe o mouse</a>
  19.     <br />
  20.     <br />
  21.     <div id="aviso"></div>
  22.   </body>
  23. </html>

Agora, se você voltar o mouse em cima do link antes dos dois segundos, o div não será atualizado. Deixe o ponteiro fora por um tempo maior que esse, e a mensagem aparecerá.

blog comments powered by Disqus

Português flagItaliano flagCoreano flagChinês (simplificado) flagEnglish flagAlemâo flagFrancês flagEspanhol flag
Japonês flagÁrabe flagRusso flagHolandês flagBúlgaro flagTcheco flagCroata flagDinamarquês flag
Finlandês flagHindu flagPolonês flagRomeno flagSueco flagGrego flagNorueguês flag 
By N2H
96 DOLETAS de desconto na hospedagem Dreamhost!
Use o "PROMO CODE" INERCIA. LAMP com 20GB de espaço e 1TB de transferência.

Artigos relacionados

  • No Related Posts

Categories