2011-04-05 57 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