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