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 を「横切って」移動する関数と、.div を「下」に移動する関数があります。

関数「across」が完了したときにのみ関数「down」が実行されるようにするには、何を変更する必要がありますか?

最初の行のスパンを循環してから、下に移動し、2 番目の行を循環し、次に下に移動し、3 番目の行、4 番目の行を循環してから、ループしてすべてをやり直します。

ご協力いただきありがとうございます。

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 に答える