jQuery show / hideFlashMessages点击功能不起作用?

时间:2012-01-10 15:25:13

标签: javascript jquery jquery-animate

我有以下功能可以很好地显示和隐藏rails flash警报。它会显示然后暂时隐藏闪存消息,但是我想添加一个按钮以允许用户在延迟缓慢时隐藏闪光灯,但只有当我时它才有效使用hideFlashMessage函数???

函数看起来像这样:

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 个答案:

答案 0 :(得分:1)

您非常接近......您只需要在$('#flash').stop();点击处理程序中添加#closeFlash即可停止hideFlashMessages动画,然后才能启动新动画:

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

以下是一个有效的例子:http://jsfiddle.net/p6knk/