0

次々と要素をアニメートしようとしていますが、これに問題があります

    $.getJSON('http://localhost/json/example/json.json', function(data){
        var ele = jsonElements(data);
        for(var i = 1; i <= ele; i++)
        {
            $('#test').append('<a href="#" id="t_'+i+'" class="block-icon"></a>');
            $('#t_'+i).animate({
                'top': data['t_'+i]['top'],
                'left': data['t_'+i]['left']
                }, 800).delay(1000);
        }

    });

それは機能しますが、すべての要素が同時にアニメーションを持っています、それを次々に作る方法について何かアドバイスはありますか?

4

1 に答える 1

0
$.getJSON('http://localhost/json/example/json.json', function(data){
        var ele = jsonElements(data);
        one_by_one(ele,1);
    });

function one_by_one(ele,i){
if(i > ele)
return;

$('#test').append('<a href="#" id="t_'+i+'" class="block-icon"></a>');
$('#t_'+i).animate({
                'top': data['t_'+i]['top'],
                'left': data['t_'+i]['left']
                }, 1000, function() {
    // Animation complete
    one_by_one(ele,i+1);
  });

}

one_by_one(i);を呼び出します。

http://jsfiddle.net/VS8tQ/64/に例を追加しました

于 2012-09-08T11:23:21.603 に答える