2013-03-21 94 views
0

我想在Cols和Rows函数之间延迟2000ms。 (该列数应该第一第二绘制,各行)2个函数之间的延迟

(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

回答

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()内推迟会耽误太多。

+0

谢谢!我尝试过,但我失败了:S – Strernd 2013-03-21 11:04:38

0

使用delay(duration)

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

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

+0

如果延迟整个功能,每行延迟2秒 – Strernd 2013-03-21 11:05:01