SLIFE Posted June 21, 2012 Report Share Posted June 21, 2012 (edited) Boas a todos. Precisava de uma ajuda. Tenho uma função que deveria fazer com que uma determinada div aparecesse e desaparecesse ao fim de 3 segundos. O problema e que a div aparece e desaparece rapidamente, nem chega a um segundo! O codigo que tenho é: $(function mostra_msg() { var apagar = <?= $apagou ?> ; if (apagar == 1) { $("#removeu").show("slow"); setTimeout("esconde_msg()", 3000); } }); $(function esconde_msg() { $("#removeu").hide("slow"); }); Desde ja obrigado. Cumprimentos SJC Edited June 21, 2012 by brunoais indentação do código Sandro Coelho Link to comment Share on other sites More sharing options...
KiNgPiTo Posted June 21, 2012 Report Share Posted June 21, 2012 (edited) Talvez deve ser porque está a chamar o setTimeout quando o show ainda nem concluiu... Experimenta: $(function mostra_msg(){ var apagar = <?=$apagou?>; if(apagar == 1){ $("#removeu").show("slow", function(){ setTimeout("esconde_msg()" ,3000); }); } }); $(function esconde_msg(){ $("#removeu").hide("slow"); }); Edited June 21, 2012 by KiNgPiTo Link to comment Share on other sites More sharing options...
SLIFE Posted June 21, 2012 Author Report Share Posted June 21, 2012 Boas Desde já obrigado! Mas o problema persiste.... Mesmo com o codigo como dizes, continua a fazer o mesmo, aparece e desparece muito de pressa. Sandro Coelho Link to comment Share on other sites More sharing options...
yoda Posted June 21, 2012 Report Share Posted June 21, 2012 (edited) Experimenta isto : setTimeout(function() { return esconde_msg(); },3000); Edited June 21, 2012 by yoda before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
SLIFE Posted June 22, 2012 Author Report Share Posted June 22, 2012 Experimenta isto : setTimeout(function() { return esconde_msg(); },3000); Boas Experimentei como dizes, mas mesmo assim nao funciona bem Agora tenho o seguinte codigo: var tempo; var apagar = <?=$apagou?>; function mostra_msg(){ if(apagar == 1){ $("#removeu").show(); tempo = setTimeout(esconde_msg, 5000); } }; function esconde_msg(){ $("#removeu").hide("slow"); clearTimeout(tempo); }; E desta maneira aparece mais ou menos 1 segundo no ecra e desaparece. De todas as tentativas, foi a unica maneira de fazer isto aparecer mais tempo, mas nao consigo mais que um segundo! Sandro Coelho Link to comment Share on other sites More sharing options...
SLIFE Posted June 22, 2012 Author Report Share Posted June 22, 2012 Alguem me sabe dizer porque e que o topico aparece como resolvido??? Onde altero isto. Nao fiz nada e comecou a aparecer como resolvido, mas o continuo a precisar de ajuda! Sandro Coelho Link to comment Share on other sites More sharing options...
brunoais Posted June 23, 2012 Report Share Posted June 23, 2012 Boas Experimentei como dizes, mas mesmo assim nao funciona bem Agora tenho o seguinte codigo: var tempo; var apagar = <?=$apagou?>; function mostra_msg(){ if(apagar == 1){ $("#removeu").show(); tempo = setTimeout(esconde_msg, 5000); } }; function esconde_msg(){ $("#removeu").hide("slow"); clearTimeout(tempo); }; E desta maneira aparece mais ou menos 1 segundo no ecra e desaparece. De todas as tentativas, foi a unica maneira de fazer isto aparecer mais tempo, mas nao consigo mais que um segundo! Tantos problemas... Essa indentação só desajuda, não ajuda (ele é complicado de se perceber). Já experimentaste declarar o esconde_msg() antes desse código? Não tens mais código que atue nessa parte para além desse? Alguem me sabe dizer porque e que o topico aparece como resolvido??? Onde altero isto. Nao fiz nada e comecou a aparecer como resolvido, mas o continuo a precisar de ajuda! There, happy 🙂 ? (já está, feliz?) "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
taviroquai Posted June 23, 2012 Report Share Posted June 23, 2012 @SLIFE No teu código, tens que colocar a ação de esconder como callback na ação mostrar, de forma que o esconder só vai ser executado depois de mostrar. $("#removeu").show("slow", function() { $("#removeu").hide("slow"); }); Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now