gpt4 book ai didi

javascript - 无法从局部函数更改全局变量

转载 作者:行者123 更新时间:2023-11-30 23:48:27 27 4
gpt4 key购买 nike

我试图让 jQuery.getJSON() 调用使用它返回的 JSON 数组更改全局变量:

var photo_info ;

//Advance to the next image
function changeImage(direction) {

jQuery('img#preview_image').fadeOut('fast');
jQuery('#photo_main').css('width','740px');

if (direction == 'next') {
jQuery.getJSON('/ajaxupdate?view&sort='+sort+'&a='+a+'&s=' + title_url_next, function(data) {
photo_info = data;
title_url = photo_info.title_url;
title_url_next = photo_info.preview_title_url_next;
title_url_previous = photo_info.preview_title_url_previous;
});
} else if (direction == 'prev') {
jQuery.getJSON('/ajaxupdate?view&sort='+sort+'&a='+a+'&s=' + title_url_previous, function(data) {
photo_info = data;
title_url = photo_info.title_url;
title_url_next = photo_info.preview_title_url_next;
title_url_previous = photo_info.preview_title_url_previous;
});
}
}

但是,变量 photo_info 只能从 getJSON() 函数内部访问,并且从脚本中的其他任何位置返回 undefined。

我做错了什么?

最佳答案

正如 Randal 所说,Ajax 调用是异步的。使用 ajaxComplete 函数或用 .ajax 调用替换 getJSON 函数,并使用 success 函数中的 photo_info var,例如:

$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.result').html(photo_info);
}
});

关于javascript - 无法从局部函数更改全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2166426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com