Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
jQuery do something after given time
Last Updated: Mar 23 2010 10:48, Started by
nevergone
, Mar 22 2010 14:53
·
0
#1
Posted 22 March 2010 - 14:53
Salut,
Am si eu nevoie de putin ajutor in jQuery. Vreau ca intr-un div sa apara un mesaj , iar dupa 5 secunde, sa afiseze rezultatul din fisierul account.inc.php si sa ramana asa. Codul meu afiseaza doar continutul lui account.inc.php if (mysql_query($sql)) { echo ' <script type="text/Javascript"> $(\'#loginDiv\').html(\'Your account was updated succesfully\').delay(5000).load(\'includes/account.inc.php\'); </script>'; } else {die(mysql_error());} .delay( duration, [ queueName ] ) duration An integer indicating the number of milliseconds to delay execution of the next item in the queue. Am pus delay de 5000ms(5s) intre afisarea mesajului in div si incarcarea in div a continutului fisierului account.inc.php ... dar nu merge :| . PoC - se vede ca afiseaza msg-ul dar dispare in milisecunda urmatoare,deci nu functioneaza delay(5000) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Test</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script> </head> <body> <div id="loginDiv"> <script type="text/Javascript"> $('#loginDiv').html('Your account was updated succesfully').delay(5000).load('includes/account.inc.php'); </script> </div> </body> </html> Edited by nevergone, 22 March 2010 - 14:57. |
#2
Posted 22 March 2010 - 15:41
Script-ul scris in tag-urile <script> se executa instant, inainte sa se incarce tot HTML-ul (si loginDiv e posibil sa nu existe), cel mai bine este sa pui tot codul ce manipuleaza HTML la inceput in $(document).ready(...)
$(document).ready(function() { $(\'#loginDiv\').html(\'Your account was updated succesfully\').delay(5000).load(\'includes/account.inc.php\'); });Daca intradevar textul apare si apoi dispare, urmareste cu firebug sau altceva request-urile ajax sa vezi daca nu se apeleaza ajax-ul sau se apeleaza insa da eroare ori raspunsul este gol. Edited by senoctar, 22 March 2010 - 15:43. |
#3
Posted 22 March 2010 - 17:11
senoctar, on 22nd March 2010, 15:41, said: Script-ul scris in tag-urile <script> se executa instant, inainte sa se incarce tot HTML-ul (si loginDiv e posibil sa nu existe), cel mai bine este sa pui tot codul ce manipuleaza HTML la inceput in $(document).ready(...) $(document).ready(function() { $(\'#loginDiv\').html(\'Your account was updated succesfully\').delay(5000).load(\'includes/account.inc.php\'); });Daca intradevar textul apare si apoi dispare, urmareste cu firebug sau altceva request-urile ajax sa vezi daca nu se apeleaza ajax-ul sau se apeleaza insa da eroare ori raspunsul este gol. Am reusit in cele din urma , dar tot nu am aflat ce doream si de ce nu mergea ceea ce era mai sus. <script type="text/Javascript"> $('#loginDiv').html('<p> </p><p class="updated">Account updated succesfully</p><p>Please wait 5 seconds to return to your account details window</p>').fadeOut(5000, function() { $('#loginDiv').load("includes/account.inc.php").fadeIn('slow'); }); </script> Edited by nevergone, 22 March 2010 - 17:12. |
#4
Posted 22 March 2010 - 17:19
Ce versiune de jQuery folosesti ?
Ca sa fii sigur scrie alert($().jquery); LE: Am mai citit despre delay, se pare ca functioneaza doar pentru efecte, cand apelezi o functie in sir pe un obiect, in functie de diversi parametri ea va fi pusa sau nu intr-un queue. Majoritatea functiilor de animatie vor fi puse in queue-ul numit "fx". Functia delay daca ii dai doar numarul de milisecunde se va atasa si ea la acest queue si nu va avea efect asupra altor functii ce nu tin de efecte, precum load. Ca sa fortezi un eveniment pe un queue poti face asa : $(\'#loginDiv\').html(\'Your account was updated succesfully\').delay(5000).queue(\'fx\', function(next){ load(\'includes/account.inc.php\'); next();})Desi ar fi mai bine sa iti faci propriul queue ca sa nu folosesti 'fx' Edited by senoctar, 22 March 2010 - 17:35. |
#5
Posted 22 March 2010 - 19:13
senoctar, on 22nd March 2010, 17:19, said: Ce versiune de jQuery folosesti ? Ca sa fii sigur scrie alert($().jquery); LE: Am mai citit despre delay, se pare ca functioneaza doar pentru efecte, cand apelezi o functie in sir pe un obiect, in functie de diversi parametri ea va fi pusa sau nu intr-un queue. Majoritatea functiilor de animatie vor fi puse in queue-ul numit "fx". Functia delay daca ii dai doar numarul de milisecunde se va atasa si ea la acest queue si nu va avea efect asupra altor functii ce nu tin de efecte, precum load. Ca sa fortezi un eveniment pe un queue poti face asa : $(\'#loginDiv\').html(\'Your account was updated succesfully\').delay(5000).queue(\'fx\', function(next){ load(\'includes/account.inc.php\'); next();})Desi ar fi mai bine sa iti faci propriul queue ca sa nu folosesti 'fx' <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>Spune-mi si mie te rog unde ai citit chestiile de mai sus si merci pt ajutor. |
#6
Posted 22 March 2010 - 19:46
In documentatia la jQuery.
Pagina de inceput este documentatia funciei delay, daca te uiti la comentarii, cel mai de jos se refera la faptul ca hide() nu functioneaza cu delay() si raspunsul este faptul ca hide() fara parametru nu se pune in coada 'fx' si nu este afectat de delay. In acelasi caz este si functia load() si css() si toate ce nu se refera la efecte. Despre queue gasesti mai multe informatii si exemple aici. Ca sa verific am folosit jsbin, ai aici exemplul echivalent codului tau initial care nu functioneaza (se shimba textul in "Phase two" imediat ce se incarca pagina). Si aici unul care functioneaza dupa ce fortez actiunea pe coada 'fx'. LE: Ca o nota , la solutia din postul meu precedent am uitat sa pun $(this) inainte de load(). Edited by senoctar, 22 March 2010 - 19:50. |
#7
Posted 23 March 2010 - 09:01
$('#loginDiv').html('Your account was updated succesfully'); setTimeout(function(){ $('#loginDiv').load('includes/account.inc.php'); },5000);Nu e bun cu setTimeout? |
#8
Posted 23 March 2010 - 10:48
cezarica, on 23rd March 2010, 09:01, said: Nu e bun cu setTimeout? Quote jQuery.delay() is best for delaying between queued jQuery effects and such, and is not a replacement for Javascript's native setTimeout function, which may be more appropriate for certain use cases. |
Anunturi
▶ 1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users