2016-09-26 2 views
0

jquery에서이 문제가 발생합니다. 내 jquery에있는 많은 함수 중 하나가 다른 함수에서 호출 할 때 "Uncaught ReferenceError : curLocZip이 정의되지 않았습니다."을 반환합니다.함수가 정의되지 않은 상태에서 jquery로이 문제가 발생했습니다.

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(); 

curLocZip()가 정의되지 않았습니다.

+2

코드에서 'curLocZip'이 정의되어 있습니까? 어디에서 부름을 받았습니까? – Joseph

+0

a) 어디에서 언제 함수를 정의합니까? b) 어디서 언제 호출합니까? – Danmoreng

+0

'$ (document) .ready (function() {...});}에 _curloczip() _ (fna curLocZip)을 정의했으며, 같은 (언급)이라고했습니다. 전역 변수에 대한 _curloczip() _의 기본값을 설정하고 함수를 호출하면 함수가 호출 될 때 함수가 실제로 값을 반환한다는 것을 알았습니다. 함수가 호출되면 API 처리가 완료되기 전에 반환됩니다. 나는 지금 함수가 호출되기 전에 반환하기 전에 API 처리를 완료하는 방법을 찾고있다. –

답변

-1

페이지로드시 정의한 후 정의되기 전에 호출 할 수 있습니다. 페이지가로드 된 후에 만 ​​함수를 호출해야하므로 onLoad 콜백에서 처리를 시작해야 할 수 있습니다.

+0

함수 호출이 잘 작동하는 것처럼 보입니다. 콘솔에 출력 한 후에 나타났습니다. 문제는 API 처리가 완료되기 전에 함수가 반환하는 것 같습니다. 따라서 Google Maps API 호출을 제거하고 설정된 데이터가있는 변수 만 반환하면 함수 호출이 제대로 작동하는 것 같습니다. 이렇게 :'function curloczip() { \t \t curZipCode = "38104"; \t \t return curZipCode; }' –

관련 문제