我想访问变量lat和var lng,如下面的代码所示,请告诉我在.load中访问这些变量的正确方法
$(document).ready(function(){
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat= position.coords.latitude;
var lng= position.coords.longitude;
}
$(".content").load("page1.php?latitude="+lat+"&longitude="+lng);
});
我想调用var lat和var lng,如下面的代码所示,请告诉我在.load中调用这些变量的当前方法
答案 0 :(得分:2)
getCurrentPosition
函数是异步的 - 稍后调用回调,并继续执行函数的其余部分。
因此,.load
的调用应在showPosition
函数本身内进行。
请勿忘记,您还必须致电getLocation()
以启动整个过程。
为方便起见,这是一个未经测试的插件包装器,我刚刚将其{@ 1}}调用转换为Promise接口:
getCurrentLocation
用法:
(function($) {
$.geolocate = function(options) {
var def = $.Deferred();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(def.resolve, def.reject, options);
} else {
def.reject("location not available");
}
return def.promise();
};
})(jQuery);
答案 1 :(得分:-1)
您可以将它们移至.ready()
的范围:
$(document).ready(function(){
var lat;
var lng;
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
lat= position.coords.latitude;
lng= position.coords.longitude;
}
$(".content").load("page1.php?latitude="+lat+"&longitude="+lng);
});