Kā gaidīt 5 sekundes ar jQuery?

Es mēģinu izveidot efektu, kad lapa ielādējas un pēc 5 sekundēm uz ekrāna parādās paziņojums par panākumiem, kas izbalē vai izplūst uz augšu.

Kā to panākt?

Risinājums

Iebūvēts javascript setTimeout.

setTimeout(
  function() 
  {
    //do something special
  }, 5000);

DATUMS: jūs vēlaties gaidīt, kad lapa ir pabeigusi ielādēšanu, tāpēc ievietojiet šo kodu savā $$(document).ready(...); skripta iekšpusē.

ŪPATNĪJUMS 2: jquery 1.4.0 ieviesa .delay metodi. Pārbaudiet to. Ņemiet vērā, ka .delay darbojas tikai ar jQuery efektu rindām.

Komentāri (10)

Izmantojiet parastu javascript taimeri:

$(function(){
   function show_popup(){
      $("#message").slideUp();
   };
   window.setTimeout( show_popup, 5000 ); // 5 seconds
});

Tas gaidīs 5 sekundes pēc tam, kad DOM būs gatavs. Ja vēlaties gaidīt, līdz lapa ir faktiski iegādāta, jums jāizmanto šis taimeris:

$(window).load(function(){
   function show_popup(){
      $("#message").slideUp();
   };
   window.setTimeout( show_popup, 5000 ); // 5 seconds
})

EDIT: Atbildot uz OP komentāru, kurā jautāts, vai ir veids, kā to izdarīt ar jQuery un neizmantot setTimeout, atbilde ir nē. Bet, ja jūs gribētu, lai tas būtu vairāk "jQueryish", jūs varētu to ietīt šādi:

$.wait = function( callback, seconds){
   return window.setTimeout( callback, seconds * 1000 );
}

Tad jūs varētu to izsaukt šādi:

$.wait( function(){ $("#message").slideUp() }, 5);
Komentāri (0)

Underscore bibliotēka nodrošina arī "delay" funkciju:

_.delay(function(msg) { console.log(msg); }, 5000, 'Hello');
Komentāri (0)