执行功能,只有在另一个功能完成后?

时间:2013-02-24 15:02:55

标签: jquery

此脚本无限循环遍历元素,并应用类:

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);
});

有一个移动'跨越'的功能。移动' down' .divs。

我需要做些什么来改变它才能使功能“降低”'仅在功能'跨越'已完成?

我希望它在第一行的跨度上循环,然后向下移动,循环第二行,然后向下移动,循环第三行,然后是第四行,然后循环并完成整个过程试。

感谢您的帮助。

1 个答案:

答案 0 :(得分: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中使用字符串,请参阅函数。