0

我大致了解如何queue()工作dequeue(),但这个函数对我来说看起来真的很加密:

function displayMessage (msg) {
                $('#info').queue(function() {
                  $(this).fadeTo('slow', 0).queue(function() {
                    $(this).text(msg).dequeue()
                  }).fadeTo('slow', 1).dequeue(); 
                })
}

这里到底发生了什么?

4

1 回答 1

2

.dequeue只是告诉队列何时继续。这是这样做的旧方法,新方法是接受.queue名为回调的参数next,然后在您希望队列继续时执行该参数(它是一个函数)。旧的方法应该仍然有效。参考:http ://api.jquery.com/queue/

您的代码可以简化为:

function displayMessage(msg) {
    $('#info').fadeTo('slow', 0, function(){
        $(this).text(msg).fadeTo('slow',1);
    });
}

但是我发现显示这样的消息很烦人。我建议加快动画速度,或者可能删除动画,而是做一个突出效果来引起对消息的注意。

请注意,这仍将考虑仍在淡入和淡出的现有消息。

于 2013-09-03T21:14:30.170 回答