function calcula(item) {
var produtos_total = 0;
$.getJSON(url, {id: 1, ajax: 'true'}, function(j){
var options;
for (var i = 0; i < j.length; i++) {
options = j[i].valor;
}
produtos_total = options;
// alert(produtos_total); < - HERE PRINT
}); // JSON
alert(produtos_total); // HERE NOT :'(
}
答案 0 :(得分:0)
事情没有按照你认为的顺序发生。
function calcula(item) {
// 1. start here
var produtos_total = 0;
// 2. set up an AJAX call
$.getJSON(url, {id: 1, ajax: 'true'}, function(j){
// 4. later, after the AJAX call completes
var options;
for (var i = 0; i < j.length; i++) {
options = j[i].valor;
}
produtos_total = options;
alert(produtos_total); // NOW we have a value
}); // JSON
// 3. leave the function
alert(produtos_total); // no value yet. AJAX hasn't completed
}