jQuery ile 5 saniye nasıl beklenir?

Sayfanın yüklendiği ve 5 saniye sonra ekrandaki başarı mesajının kaybolduğu veya yukarı kaydığı bir efekt oluşturmaya çalışıyorum.

Bunu nasıl başarabilirim?

Çözüm

Dahili javascript setTimeout.

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

GÜNCELLEME: sayfanın yüklenmesinin bittiği andan itibaren beklemek istiyorsunuz, bu nedenle bu kodu $(document).ready(...); kodunuzun içine koyun.

GÜNCELLEME 2: jquery 1.4.0 .delay metodunu tanıttı. Check it out. .delay'in sadece jQuery efekt kuyrukları ile çalıştığını unutmayın.

Yorumlar (10)

Normal bir javascript zamanlayıcı kullanın:

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

Bu, DOM hazır olduktan sonra 5 saniye bekleyecektir. Sayfa gerçekten yüklenene kadar beklemek istiyorsanız bunu kullanmanız gerekir:

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

EDIT: OP'nin `setTimeout' kullanmadan jQuery'de bunu yapmanın bir yolu olup olmadığını soran yorumuna cevap olarak cevap hayırdır. Ancak bunu daha "jQueryish" yapmak istiyorsanız, bu şekilde sarabilirsiniz:

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

O zaman bu şekilde çağırabilirsiniz:

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

Underscore kütüphanesi]1 ayrıca bir "delay" işlevi de sağlar:

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