Javascript 我在jquery中遇到了这个问题,这表明在我定义函数的同时没有定义函数
我对jquery有这个问题。当我在另一个函数中调用它时,jquery中的一个函数返回“uncaughtreferenceerror:curLocZip未定义” 以下是函数定义:Javascript 我在jquery中遇到了这个问题,这表明在我定义函数的同时没有定义函数,javascript,jquery,Javascript,Jquery,我对jquery有这个问题。当我在另一个函数中调用它时,jquery中的一个函数返回“uncaughtreferenceerror:curLocZip未定义” 以下是函数定义: function curLocZip(){ curZipCode = ""; if (navigator.geolocation) { //Checks if browser supports geolocation navigator.geolocation.wa
function curLocZip(){
curZipCode = "";
if (navigator.geolocation) { //Checks if browser supports geolocation
navigator.geolocation.watchPosition(function (position) {
var geocoder = new google.maps.Geocoder();
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var latlng = new google.maps.LatLng(lat, lng)
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
for (i = 0; i < results[0].address_components.length; i++) {
if (results[0].address_components[i].types[0] == 'postal_code'){
curZipCode = results[0].address_components[i].short_name;
break;
}
}
}
} else {
console.log("Geocoder failed due to: " + status);
}
});
});
} else {
alert("Geolocation is not supported by this browser.");
}
}
我不知道为什么会出现错误,表明没有定义curLocZip()。可能是在页面加载时定义了它,并在定义之前调用了它。您必须仅在加载页面后调用函数,因此您可能希望在
onLoad
回调中开始处理。代码中的哪里定义了curLocZip
?在哪里调用它?a)在哪里和什么时候定义函数b)在哪里和什么时候调用它?我在$(document).ready(function(){…})中定义了curloczip()(fna curloczip)代码>,我用同样的方法调用它(声明)。通过在curloczip()中为全局变量设置一个默认值,然后调用该函数,我注意到该函数在调用时实际上返回一个值,只是在API处理完成之前返回。我现在正在寻找如何在调用函数返回之前完成API处理。在控制台中打印出来后,我注意到函数调用似乎工作得很好。问题似乎是函数在API处理完成之前返回。因此,当我删除GoogleMapsAPI调用中的一个变量并返回一个带有设置数据的变量时,函数调用似乎工作得很好。类似这样:函数curloczip(){curZipCode=“38104”;返回curZipCode;}
curLocZip();