2013-01-04 18 views
7

Özel bir açılır mesaj oluşturmaya çalışıyorum, görünen, 5 saniye boyunca kullanıcıya gösteriliyor ve sonra söner. Bu işlem, kullanım olayları birden çok kez tetiklerse ve zaman aşımı zaten çalışıyorsa, hızlı bir şekilde çalışır.JQuery Pop-up mesajı

+0

showMessage'i çağıracağınız kodu ekleyebilir misiniz? –

+0

Mesaj kutusunun durumunu kaydetmek için bir değişken ekleyebilirsiniz. Kutu gösteriliyorsa, işlevi yürütmeyin. – Raptor

+1

fadeout işlevinin kendisinde zaman aşımı belirtme hakkında ne dersiniz? Senin için mi çalışacak? –

cevap

8

bu deneyin

bugüne kadar My fonksiyonu ...

function showMessage(message) { 
    $(".messageText").text(message); 

    $(".message").fadeIn("slow");  

    closeBox = function(){ 
     $(".message").fadeOut("slow");  
    } 

    clearInterval(closeBox); 
    setInterval(closeBox, 5000); 
} 

Çok teşekkürler:

var interval; 

function showMessage(message) { 
    $(".messageText").text(message); 

    $(".message").fadeIn("slow"); 
    if(interval){ // If a interval is set. 
     clearInterval(interval); 
    } 
    interval = setInterval(closeBox, 5000); 
} 

function closeBox(){ 
    $(".message").fadeOut("slow");  
} 

Bir değişkene setInterval dönüşünü atamanız gerekir. Bu tutamak, aralığı clearinterval ile sonlandırmak için kullanılabilir.

Ayrıca, ben showMessage fonksiyon dışı closeBox fonksiyonunu çekti (Sadece aralık koldan, işlev tarafından bir aralık temizleyin olamaz), bu o showMessage denir her zaman beyan etmek gerekli değildir.

+0

ve inverval aralık olmalıdır. :) – bipen

+0

Bipen: Whoops, edited. – Cerbrus

+1

jQuery'nin gecikmesi(), bunun gibi senaryolar için tasarlanmıştır. –

4

JQuery gecikmesi nasıl kullanılır?

Örnek:

$("#container").fadeIn().delay(amoutOfTimeInMiliseconds).fadeOut(); 

İşleviniz:

function showMessage(message) { 
    $(".messageText").text(message); 

    $(".message").fadeIn("slow").delay(5000).fadeOut("slow");  
} 

Bu çalışması gerekir ... Saygılar.

+0

+1 sorunu çözmek için jQuery kullanarak – Alex