2012-01-27 72 views
0

我有一个通知栏出现在页面的顶部,然后在xx秒后做一个slideOut。我也有一个可以点击的图标来加快slideOut。防止重复jQuery的动画时点击触发与一段时间后

问题是如果按钮被按下动画发生两次。点击后消失,然后在xx秒后出现并再次执行slideOut。

我想我需要以不同的方式写这个或许绑定事件?或者我需要添加一个if语句?

<script type="text/javascript"> 
Ext.onReady(function() { 
    hideNotification.defer(7000); 
}); 
var hideNotification = function() { 
    Ext.get('notification-bar').slideOut('t', {duration:0.5, easing:'easeOut'}); 
    Ext.get('notification-hide-button').setDisplayed(false); 
} 
$("#notification-hide-button").click(function() { 
    hideNotification(); 
}); 
</script> 

回答

1

你可以使用window.setTimeout function..like是

var hideTimeout = window.setTimeout(hideNotification, 700); 

,然后添加到hideNotification功能这

window.clearTimeout(hideTimeout); 

应该删除你的方法的调用推迟一旦你点击按钮..

+0

谢谢 - 这工作后有点修补。我不需要使用窗口。或者不需要设置var。我使用:hideTimeout = window.setTimeout(hideNotification,700);然后:clearTimeout(hideTimeout); – Voodoo 2012-01-30 19:53:30

+0

实际上你不需要使用var关键字,但是这意味着你正在创建一个全局变量..换句话说,它更好地添加这个,但是请注意,如果你创建了局部变量,它只能看到函数/对象在哪里创建。 这可能是你的问题,你可以尝试使用var关键字设置任何其他函数来访问变量。 – simekadam 2012-01-30 20:34:39

相关问题