2012-01-10 78 views
1

我有以下功能,可以很好地显示和隐藏栏杆闪光警报。它显示并隐藏了延迟的闪光消息,但我想添加一个按钮以允许用户隐藏闪光灯(如果延迟较慢),但只有当我不使用hideFlashMessage功能时? ??jQuery show/hideFlashMessages点击功能不起作用?

的功能是这样的:

function showFlashMessages() { 
    $('#flash').delay(800).animate({"top": "+=75px"}, 200); 
} 

function hideFlashMessages() { 
    $('#flash').delay(10000).animate({"top": "-=75px"}, 300); 
    $('#flash').fadeOut(); 
} 

function clickHideFlashMessages() { 
    $('#flash').animate({"top": "-=75px"}, 300); 
    $('#flash').fadeOut(); 
} 

...他们被调用,像这样:

$(document).ready(function(){ 

    showFlashMessages(); 

    hideFlashMessages(); 

    $("#closeFlash").click(function(){ 
    clickHideFlashMessages(); 
    }); 

}); 

任何帮助表示赞赏。

回答

1

你很近......你只需要添加$('#flash').stop();#closeFlash click处理程序停止hideFlashMessages动画,然后才能开始新的动画:

$("#closeFlash").click(function(){ 
    $('#flash').stop(); 
    clickHideFlashMessages(); 
    }); 

这里有一个工作示例:http://jsfiddle.net/p6knk/

+0

谢谢,这工作完美。 – Darcbar 2012-01-14 17:21:59