0

まず、背景色を変更するファクトリ関数があります。関数はカスタム キューをプッシュしています。

var changeBack = function (delay, color) {
    $('div').queue('custom', function (next) {
        setTimeout(function () {
            $('div').css({
                'background-color': color
            })
        }, delay)   
    })    
}

次に、背景色を数回変更してからdequeue、キューを変更します。

$(function () {
    changeBack(1000, "yellow");
    changeBack(1000, "black");
    changeBack(1000, "blue");
    changeBack(1000, "gray");
    var custom = $('div').queue('custom');
    $('div').dequeue('custom');
})

しかし、これdivは黄色の背景色に変わるだけで、最初の関数のみを実行することを意味しますか?しかし、他の関数をキューにプッシュしました。他の関数を実行するにはどうすればよいですか? ここにデモがあります

4

1 に答える 1

0

遅延させる正しい方法は ではありませんsetTimeout$.fn.delay: http://jsfiddle.net/uVjQ4/8/

var changeBack = function (delay, color) {
    var $div = $('div'); //<-- Cached selector, so that the selected element(s) 
                         // are same throughout the whole function.
    $div.delay(delay, 'custom').queue('custom', function (next) {
        ....
        next(); // Trigger next
    });
};

....
// Initialize 
    $('div').dequeue('custom');
于 2012-06-27T07:40:23.983 に答える