两个功能之间的延迟

时间:2013-03-21 10:57:00

标签: javascript jquery

我想在Cols和Rows函数之间延迟2000ms。 (应首先绘制Cols,然后排第二行)

(function() {  
    var cols = $('.cols').hide();  
    var rows = $('.rows').hide();   
    $('.grid').click(function() {  
        var i = 0;  
        var j = 0;
        (function displayCols() {  
            cols.eq(i++).fadeIn(200, displayCols);  
        })();  
        (function displayRows() {  
            rows.eq(j++).fadeIn(100, displayRows);  
        })();  
    });    
})(); 
$('.rows').hide();

Fiddle

2 个答案:

答案 0 :(得分:1)

您可以为第二个功能添加超时:

(function() {  
    var cols = $('.cols').hide();  
    var rows = $('.rows').hide();   
    $('.grid').click(function() {  
        var i = 0;  
        var j = 0;
        (function displayCols() {  
            cols.eq(i++).fadeIn(200, displayCols);  
        })();  
        setTimeout(function displayRows() {  
            rows.eq(j++).fadeIn(100, displayRows);  
        },2000);  
    });    
})(); 
$('.rows').hide();

在行动here

中查看

当然,你可以使用延迟(rows.eq(j++).delay(2000).fadeIn(100, displayRows);),但是如果还有其他东西你想在该函数中延迟setTimeout()也会延迟。

答案 1 :(得分:0)

使用delay(duration)

   (function displayRows() {  
        rows.eq(j++).delay(2000).fadeIn(100, displayRows);  
    })();  

http://api.jquery.com/delay/