SLIFE Posted June 21, 2012 at 03:53 PM Report Share #464636 Posted June 21, 2012 at 03:53 PM (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 at 09:31 PM by brunoais indentação do código Sandro Coelho Link to comment Share on other sites More sharing options...
KiNgPiTo Posted June 21, 2012 at 04:09 PM Report Share #464641 Posted June 21, 2012 at 04:09 PM (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 at 04:09 PM by KiNgPiTo Link to comment Share on other sites More sharing options...
SLIFE Posted June 21, 2012 at 04:24 PM Author Report Share #464644 Posted June 21, 2012 at 04:24 PM 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 at 06:21 PM Report Share #464698 Posted June 21, 2012 at 06:21 PM (edited) Experimenta isto : setTimeout(function() { return esconde_msg(); },3000); Edited June 21, 2012 at 06:21 PM 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 at 09:08 AM Author Report Share #464856 Posted June 22, 2012 at 09:08 AM 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 at 02:45 PM Author Report Share #464967 Posted June 22, 2012 at 02:45 PM 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 at 05:24 PM Report Share #465134 Posted June 23, 2012 at 05:24 PM 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 at 05:33 PM Report Share #465136 Posted June 23, 2012 at 05:33 PM @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