2009-07-25 4 views
1

ich ein Array mit Objekten haben, möchte ich jeden einzelnen von ihnen per GET speichern und aktualisieren bestimmte params in den Rückruf, botjquery ajax Callback-Funktion ohne dynamische Parameter

die html:

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

die 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')) 
} 

die updatePostBack immer das las Einzelteil empfangen! Wie kann ich die richtige ID oder Objekt an eine Callback-Funktion in js/jquery übergeben?

Antwort

2

Die Lösung ist so banal: Sie mussten vor Ihren Variablen var hinzufügen, um sie als neu zu deklarieren. Sie wurden von der nächsten Iteration unpassend überschrieben, bevor die erste abgeschlossen werden konnte. Dieser Code funktioniert für mich:

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); 

ich auch die Karte Anweisung an das Ende bewegt, so dass es die speichern Funktion aufrufen, nachdem es erklärt.

+0

ok, ich habe diese Lösung getestet und es ist sicherlich. vielen dank, Javascript Lord u.u – dnuske

+0

np, froh, ich könnte helfen. –