2

我有一个简短的功能,应该在网站上显示消息。

function showHint() { 
    $('#notify').html('message text').show('slide', {direction: 'right'}, 500);
}

还有另一个隐藏消息的功能。

function hideHint() { 
    $('#notify').hide('slide', {direction: 'right'}, 500);
}

问题是,如果我多次调用此函数,它会尝试同时显示所有消息并且一切都会中断。我想调用该函数两次,然后它应该将动画排队并显示一条又一条消息。该函数应同时调用不止一次,但要一个接一个地显示。当冷杉隐藏时,应显示下一条消息。

我该如何解决问题?会好的!

4

3 回答 3

1

这是我过去使用的一个迷你自定义插件,它一个接一个地链接了一堆动画。

// Good for serializing animations
$.fn.chain = function(fn) {
  var elements = this;
  var i = 0;
  function nextAction() {
    if (elements.eq(i)) fn.apply(elements.eq(i), [nextAction]);
    i++;
  }
  nextAction();
};

你可以这样称呼它(这是一个使用中的例子):

$(document).ready(function() {
  $('li').chain(function(nextChain) { this.slideToggle("fast", nextChain); });
});

您传递给的函数chain传递另一个函数,当您在一个循环中失败时必须调用该函数。在上面的示例中,我们只是将nextChain函数作为回调传递给slideToggle.

于 2009-11-27T23:28:27.447 回答
0

您的 showhint 函数可以从隐藏通知开始,完成后回调将是现有的 showhint 函数,它将更改文本并显示它。考虑到您已经完成的工作,代码应该不难。

于 2010-02-15T08:34:14.377 回答
0

你不能只使用通知插件吗?这里有两个(一个两个)非常漂亮。

于 2010-02-15T08:39:33.790 回答