2013-02-24 125 views
0

通过元素此脚本无限循环,并应用类:仅在其他功能完成后执行功能吗?

http://jsfiddle.net/6HDAW/

function across() { 
var $active = $('.div .current'); 
var $next = $active.next();  
$next.addClass('current'); 
$active.removeClass('current'); 
if($next.length == 0) { $(".div .bed:first-child").addClass('current'); } 
} 

function down() { 
    var $active = $('#slideshow .active'); 
    var $next = $active.next();  
    $next.addClass('active'); 
    $active.removeClass('active'); 
    if($next.length == 0) { $("#slideshow .div:first-child").addClass('active'); } 
} 

$(function() { 
    setInterval('across()', 500); 
    setInterval('down()', 500); 
}); 

有移动“跨越”的和功能的移动“下来”的.divs的功能。

我需要做些什么改变才能让函数'down'只在函数'across'完成时执行?

我希望它在第一行的跨度上循环,然后向下移动,循环遍历第二行,然后向下移动,循环遍历第三行,然后循环第四行,然后循环并执行整个事情再次。

感谢您的帮助。

回答

2

我猜你可以执行down()函数,当across()函数达到它的目的?

function across() { 
    var $active = $('.div .current'); 
    var $next = $active.next();  
    $next.addClass('current'); 
    $active.removeClass('current'); 
    if($next.length == 0) { 
     $(".div .bed:first-child").addClass('current'); 
     down(); 
    } 
} 

function down() { 
    var $active = $('#slideshow .active'); 
    var $next = $active.next();  
    $next.addClass('active'); 
    $active.removeClass('active'); 
    if($next.length == 0) { $("#slideshow .div:first-child").addClass('active'); } 
} 

$(function() { 
    setInterval(across, 500); 
}); 

FIDDLE

PS:不setInterval的使用字符串,referrence功能。

+0

*脸掌*非常感谢! – Starkers 2013-02-24 15:08:26

+0

看起来很明显,但我们都去过那里。相信我! – adeneo 2013-02-24 15:09:15

+0

哈哈再次感谢 – Starkers 2013-02-24 16:05:48