为什么在 ajax回调函数(成功)中无法访问map变量,而其他变量则是。
为了进一步解释我的问题,我在以下代码中添加了注释
var map;
var g = 10;
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644)
};
map = new google.maps.Map(document.getElementById('map_el'), mapOptions);
g = 15;
alert(g); // Gives 15
alert(map.getCenter()); // Gives correct values
}
但是在ajax回调请求的下面的函数中。我面临有线回应
$(document).ready(function ()
{
initialize();
$.ajax({
url: 'ajax.aspx/getLocation',
type: "POST",
contentType: "application/json; charset=uft-8",
dataType: 'json',
success: function (data)
{
alert(g); // Gives 15
alert(map.getCenter()); // Gives error => map is undefined
}
});
});
注意:以上两个函数在脚本标记
中的范围相同答案 0 :(得分:0)
您的initialize
功能似乎正在执行 asynchronously
。所以尝试使用 setTimeout()
等
$(document).ready(function () {
initialize();
setTimeout(function () {
$.ajax({
url: 'ajax.aspx/getLocation',
type: "POST",
contentType: "application/json; charset=uft-8",
dataType: 'json',
success: function (data)
{
alert(g); // Gives 15
alert(map.getCenter()); // Gives error => map is undefined
}
});
}, 10);
});
或 callbacks
。