JS全局变量保持不变
JS global variable remains unchanged
我有 2 个全局变量并将它们更改为一个函数,但它仍然显示为未定义。
var lat
var long;
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
} else
{
console.log("Geolocation is not supported by this browser.");
}
}
function showPosition(position)
{
lat = position.coords.latitude;
long = position.coords.longitude;
}
getLocation();
console.log(lat + " " + long);
我已经检查了该站点上的其他问题,但 none 似乎对此有答案。当我检查 showPostion() 函数内部时,它会显示实际坐标。我是 js 新手,请帮助。
编辑:
我有另一个函数,我想在其中访问全局变量。
function generate_list(params, fromPageLoad)
{
var ajax_url = jQuery('#ajax_post_url').val();
var data = { action: 'generate_list', latitude: lat, longitude: long };
var extended_data = jQuery.extend(data, params);
jQuery.ajax({
type: 'POST',
data: extended_data,
url: ajax_url,
success: function (data) {
//console.log(data);}
}
在使用动态参数加载页面时调用此函数。
我也尝试在 showPosition() 中 return lat lang 但它不起作用。 'POST' 或 'GET' 方法不 return 坐标变量。
function showPosition(position)
{
var ajax_url = jQuery('#ajax_post_url').val();
var lat = position.coords.latitude;
var long = position.coords.longitude;
jQuery.ajax({
type: 'POST',
data: { lat: lat,long: long },
url: ajax_url,
success: function(data)
{
}
});
console.log("Latitude: " + position.coords.latitude +
"Longitude: " + position.coords.longitude);
}
如果用户允许该位置,我想更改列表。
geolocation.getCurrentPosition
是异步的 API。尝试将 console.log 移动到 function showPosition(position)
.
内
很多(如果不是全部)API 和 callback
是异步的。出门小心!
回答你亲爱的朋友
let lat;
let long;
navigator.geolocation.getCurrentPosition(success, null, {});
function success(pos) {
lat = pos.coords.latitude
long = pos.coords.longitude
console.log('lat =',lat)
console.log('long =',long)
}
我有 2 个全局变量并将它们更改为一个函数,但它仍然显示为未定义。
var lat
var long;
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
} else
{
console.log("Geolocation is not supported by this browser.");
}
}
function showPosition(position)
{
lat = position.coords.latitude;
long = position.coords.longitude;
}
getLocation();
console.log(lat + " " + long);
我已经检查了该站点上的其他问题,但 none 似乎对此有答案。当我检查 showPostion() 函数内部时,它会显示实际坐标。我是 js 新手,请帮助。
编辑:
我有另一个函数,我想在其中访问全局变量。
function generate_list(params, fromPageLoad)
{
var ajax_url = jQuery('#ajax_post_url').val();
var data = { action: 'generate_list', latitude: lat, longitude: long };
var extended_data = jQuery.extend(data, params);
jQuery.ajax({
type: 'POST',
data: extended_data,
url: ajax_url,
success: function (data) {
//console.log(data);}
}
在使用动态参数加载页面时调用此函数。
我也尝试在 showPosition() 中 return lat lang 但它不起作用。 'POST' 或 'GET' 方法不 return 坐标变量。
function showPosition(position)
{
var ajax_url = jQuery('#ajax_post_url').val();
var lat = position.coords.latitude;
var long = position.coords.longitude;
jQuery.ajax({
type: 'POST',
data: { lat: lat,long: long },
url: ajax_url,
success: function(data)
{
}
});
console.log("Latitude: " + position.coords.latitude +
"Longitude: " + position.coords.longitude);
}
如果用户允许该位置,我想更改列表。
geolocation.getCurrentPosition
是异步的 API。尝试将 console.log 移动到 function showPosition(position)
.
内
很多(如果不是全部)API 和 callback
是异步的。出门小心!
回答你亲爱的朋友
let lat;
let long;
navigator.geolocation.getCurrentPosition(success, null, {});
function success(pos) {
lat = pos.coords.latitude
long = pos.coords.longitude
console.log('lat =',lat)
console.log('long =',long)
}