2011-04-05 87 views
0

我有這個代碼的重疊頁面的錯誤消息。我只是添加了點擊監聽器 - 我希望它可以跳過延遲,並在點擊時馬上關閉。然而,沒有任何反應。如果我在click監聽器中使用.hide(),它就會起作用。但我想順利過渡。jQuery - 覆蓋延遲()行動?

任何想法?

// Flash messages effect 
$("#FlashMessage").slideDown('250').delay(3000).slideUp('250'); 

// Hide flash message when clicked 
$("#FlashMessage").click(function(){ 
    $("#FlashMessage").slideUp('250'); 
}); 

回答

0

如果#FlashMessage是一個實際的Flash對象,它可能被抓住的輸入和預期不發出該事件。

我可能是錯的,但一個可能的解決方案是使用.focus()代替。點擊的()`

嘗試具有一個圖像不閃爍和測試,如果它的工作原理。我是對的,閃光是否認這個事件。

+0

您好,感謝您的答覆。不,這只是一個文本的div。我看到現在發生了什麼。當我點擊時,它只是將新命令添加到隊列的末尾。所以我需要以某種方式取消現有的命令,並將其替換爲新命令。取消延遲... – codemonkey613 2011-04-05 03:23:57

+0

Hmz,理解。嘗試:'$(「#FlashMessage」)。stop(true,true).slideUp('250');' – Khez 2011-04-05 03:28:40

0

jquery.delay不可跳過。用JS超時方法,而不是

$("#FlashMessage").slideDown('250'); 
window.setTimeout(function(){ $("#FlashMessage").slideUp('250'); },3000); 

// Hide flash message when clicked 
$("#FlashMessage").click(function(){ 
    $("#FlashMessage").slideUp('250'); 
}); 

http://www.w3schools.com/js/js_timing.asp