2011-07-26 31 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