jQuery - 覆盖延迟()动作?

时间:2011-04-05 03:15:59

标签: jquery delay slidedown slideup

我有这个代码用于重叠页面的错误消息。我刚刚添加了点击监听器 - 我希望它跳过延迟并立即关闭,如果它被点击。然而,没有任何反应。如果我在点击监听器中使用.hide(),它就可以工作。但我想顺利过渡。

有什么想法吗?

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

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

2 个答案:

答案 0 :(得分:0)

如果#FlashMessage是一个实际的Flash对象,它可能会抓取输入而不是按预期发出事件。

我可能错了,但可能的解决方案可能是使用.focus()而不是.click()`

尝试使用不是闪光灯的图像,并测试它是否有效。我是对的,闪光灯正在否认这一事件。

答案 1 :(得分:0)

jquery.delay无法跳过。改为使用js timeout方法

$("#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