javascript for循环不会运行所有代码

时间:2012-06-27 11:05:32

标签: javascript jquery for-loop

所以我确实有这个循环,但是当它在效果之后起作用时停止,当我从循环中删除该代码并由我定义x时,它确实正常工作。什么在效果后停止该功能?此外,当我尝试没有fadeTo并删除了效果之后的功能并将其放在逗号($('#item' + x + ' p').html(obchody[window.obchod][x]['doby_a_kontakty'])后面时它也起作用(但有一些错误并在第一次循环后停止)。

for (var x in obchody[window.obchod]) {
    $('#item' + x + ' p').fadeTo(350, 0, function () {
        $('#item' + x + ' p').html(obchody[window.obchod][x]['doby_a_kontakty']).fadeTo(350, 1);
    });
}

问题还在继续,现在当我使用this代替$('#item' + x + ' p')时,它会延迟运行。这是一个例子,我添加了代码类似counter - nuber(函数内部的数字)。

y = '';
for (var x in obchody[window.obchod]) {
    y += ' ' + x + '(';
    $('#item' + x + ' p').fadeTo(350, 0, function () {
        y += x + ')';
        $(this).html(obchody[window.obchod][x]['doby_a_kontakty'] + y).fadeTo(350, 1);
    });
}

这个测试的结果是:y == 0( 1( 2( 3( 4( 5( 6( 7(7)7)7)7)7)7)7)7)我需要它像y == 0(0) 1(1) 2(2) 3(3) 4(4) 5(5) 6(6) 7(7)一样运行,因为我不能在那里使用x但这对那里没有帮助

1 个答案:

答案 0 :(得分:0)

试试这个......

function fade(x) {
    $('#item' + x + ' p').fadeTo(350, 0, function() {
        $(this).html(obchody[window.obchod][x]['doby_a_kontakty']).fadeTo(350, 1);
    });
}

for (var x in obchody[window.obchod]) {
    fade(x);
}