淡出$ .post成功的div组

时间:2013-09-22 09:01:56

标签: jquery ajax fade

我想基于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;
});

1 个答案:

答案 0 :(得分: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;
});