2011-07-26 30 views
0

我不明白爲什麼這不起作用。jQuery:slideUp.delay.slideDown - 用按鈕取消?

function notificationBoxOutput(type, message) { 
    var noteBox = $('.notificationBox'); 

    noteBox.slideDown(function() { 
     noteBox.delay(2500).slideUp(); 
    }); 
} 

function notificationBoxCancel() { 
     console.log('successfully fired'); 
    $('.notificationBox').slideUp(); 
} 

因此,我調用該函數notificationBoxOutput有樣的狀態欄上,讓一些反饋在屏幕的上方。酒吧幻燈片下降,持有2,5秒,然後滑下來。

酒吧本身包含一個小點點圖標,點擊時會觸發notificationBoxCancel。所以用戶有可能更快地關閉酒吧2.5秒。但靠近者不起作用。控制檯顯示「已成功啓動」,但該框不顯示slideUp()。 hide()確實有效! fadeOut()和slideUp()不會。

任何想法爲什麼?

回答

2

你應該在動畫之前(他們).stop()向上。嘗試這樣的:

function notificationBoxCancel() { 
     console.log('successfully fired'); 
    $('.notificationBox').stop().slideUp(); 
} 
0

我認爲這是因爲動畫排隊。嘗試致電stopslideUp

function notificationBoxCancel() { 
     console.log('successfully fired'); 
    $('.notificationBox').stop(true,true).slideUp(); 
} 
+0

參數,除非作者試圖非常快速的打開箱子是沒有必要的。在其他情況下 - 代碼越少越好。 – avall

+0

在我看來,內置的動畫需要正確地停止參數......我的錯誤。 – MatTheCat