Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Caio Cafardo

Parar uma função

Recommended Posts

E ai pessoal, to com uma dúvida:

Criei esta função:

function mudahome(qualtela){
  homeatual = 1;
  intervalohome = window.setTimeout(mudahome, 3000);
  function mudahome(){
    $('#foto'+qualtela+'_'+homeatual).fadeOut(100);
    if(homeatual == 2){
      homeatual = 1;
    }else{
      homeatual++;
    }
    $('#foto'+qualtela+'_'+homeatual).delay(105).fadeIn(100);
    intervalohome = window.setTimeout(mudahome, 3000);
  }	
}

Se eu executo essa função uma vez, tudo da certo. Mas se eu executo essa função pela segunda vez, ela fica rodando em duplicidade, não teria algum modo de parar tudo que esta sendo executado dentro de uma função antes de executar ela outra vez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq vc declarou uma função dentro da outra com o mesmo nome ?

function mudahome(qualtela){
  //..
  function mudahome(){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, valeu galera, isso era uma burrada minha mesmo, mas mesmo depois de corrigido continuou dando pau, ai corrigi assim:

function mudahome(qualtela){
  estehome = qualtela;
  homeatual = 1;
  intervalohome = window.setTimeout(mudandohome, 3000);
  function mudandohome(){
    if(estehome == qualtela){
      $('#foto'+qualtela+'_'+homeatual).fadeOut(100);
      if(homeatual == 2){
        homeatual = 1;
      }else{
        homeatual++;
      }
      $('#foto'+qualtela+'_'+homeatual).delay(105).fadeIn(100);
      intervalohome = window.setTimeout(mudandohome, 3000);
    }
  }	
}

Quando mandava executar essa função outra vez, ela continuava executando o setTimeout com a variavel antiga e com a nova, ai coloquei esta verificação:

if(estehome == qualtela){

Agora só executa se for a variável da vez, valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.