0

我想根据 ajax 响应淡出一组 div。这段代码没有做我想要的。

我究竟做错了什么?

$('.view_result').click(function() {
    $('.result_bar').fadeIn();
    var set = $('.result_bar');
    for(var i = 0; i < set.length; i++) {
        $.post('get_votes.php', {'id':$(set[i]).attr('name')}, function(data) {
            $('.result_bar')[i].fadeOut(); //--> Didn't Work
            $(set)[i]).fadeOut(); //--> Didn't Work
            set[i].fadeOut();// --> Didn't Work
        }); 

    }
return false;
});
4

1 回答 1

2

i问题是在回调函数中使用了闭包变量。

在你的情况下,因为set是一个 jQuery 包装器,你可以使用.each()来迭代而不是使用for循环

$('.view_result').click(function () {
    $('.result_bar').fadeIn();
    var set = $('.result_bar');

    set.each(function(idx, el){
        $.post('get_votes.php', {
            'id': $(el).attr('name')
        }, function (data) {
            $(el).fadeOut(); //--> Didn't Work
        });
    })
    return false;
});
于 2013-09-22T09:06:50.600 回答