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

有一个用于“跨”移动的功能和一个用于“向下”移动 .div 的功能。

我需要进行什么更改才能使“向下”功能仅在“跨越”功能完成时才执行?

我希望它在第一行的跨度上循环,然后向下移动,循环通过第二行,然后向下移动,循环通过第三行,然后是第四行,然后循环并重新做整个事情。

谢谢你的帮助。

4

1 回答 1

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

小提琴

PS:setInterval中不要使用字符串,引用函数。

于 2013-02-24T15:06:11.643 回答