没有动态参数的jquery ajax回调函数

时间:2009-07-25 20:16:58

标签: javascript jquery callback

我有一个包含对象的数组,我想通过GET保存每个对象,并在回调中更新某些参数,bot

html:

<html><body><div id='test'><div id="a">a</div><div id="b">b</div></div></body></html>

js:

$.map($("#test > div"), save)

save = function(o,i){
 itt = $(o)
 tmp = {'desc':itt.html()};
 $.get('ajax/update_post', {'data':array2json(tmp)}, function(a){ 
   alert(itt.attr('id'))
   updatePostBack(a,itt)
   })
 }

updatePostBack = function(a,item){
 alert(item.attr('id'))
}

updatePostBack始终接收las项目! 如何将正确的id或对象传递给js / jquery中的回调函数?

1 个答案:

答案 0 :(得分:2)

解决方案非常平凡:您需要在变量前面添加var以将它们声明为新变量。在第一次迭代完成之前,它们被下一次迭代不恰当地覆盖。这段代码适合我:

save = function(o,i){
    var itt = $(o)
    var tmp = {'desc':itt.html()};
    $.get('ajax/update_post', {'data':array2json(tmp)}, function(a){
        alert(itt.attr('id'))
        updatePostBack(a,itt)
    })
}

updatePostBack = function(a,item){
    alert(item.attr('id'))
}

$.map($("#test > div"), save);

我还将map语句移到了最后,以便在声明之后调用save函数