在jquery每次迭代后执行回调

时间:2011-08-09 18:54:05

标签: jquery callback each

如何在每次迭代完成后正确执行函数f,以便我可以计算具有该特定类的元素?

这给出0而不是16;

f = check_hfouten();
$.each(rest, function(idx, val,f) { 
  //alert(idx + ': ' + val); 
  $('td.info.'+idx).children('span').addClass('fout').attr('title',val).end().parent('tr').find('input').addClass('overlayed').click(function(){$(this).removeClass('overlayed')});
    $('.tag_cloud.'+idx).addClass('reminder');
}).function(f);

感谢adv Richard

3 个答案:

答案 0 :(得分:6)

each不是异步的,因此您不需要回调。只需按顺序调用它:

f = check_hfouten();

$.each(rest, function(idx, val) { 
  //alert(idx + ': ' + val); 
  $('td.info.'+idx).children('span').addClass('fout').attr('title',val).end().parent('tr').find('input').addClass('overlayed').click(function(){$(this).removeClass('overlayed')});
    $('.tag_cloud.'+idx).addClass('reminder');
});

f();

答案 1 :(得分:1)

f()的来电置于each()回调的正文中:

$.each(rest, function(idx, val,f) { 
    //alert(idx + ': ' + val); 
    // -Snip-
    $('.tag_cloud.'+idx).addClass('reminder');
    f();
});

答案 2 :(得分:1)

group = $("p")
$.each(group, function(idx, val,f) { 
  alert(idx + ': ' + val); 
  if(idx == group.length - 1)
      alert("done");
});

凌乱的方式:P

http://jsfiddle.net/cwDjL/