0

你好比我聪明的人。;) 我真的无法弄清楚我的代码的这种奇怪行为。

它应该做的是在按下按钮时执行函数 fixedlocation() 以检查是否可以找到有效地址,然后执行一些代码。

为了检查它是否正常工作,我在代码中有一个警报,它给了我应该更改的布尔值的状态。现在我真的不明白为什么,但它只从第二次按下按钮开始起作用。这意味着即使可以找到有效的地址,第一次警报也会弹出一个错误的...

起初我认为它必须与我定义变量的位置有关,但第二次它无法工作,可以吗?

任何帮助或指向正确方向将不胜感激。

var geoinfobool=new Boolean();
function fixedlocation()
{    

    var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value)
    geocoder.geocode({'latLng': addresscoordinates}, function(results, status) 
    {

        if (status == google.maps.GeocoderStatus.OK) 
        {
            geoinfoavailable(true);

            //do other stuff in here//

        } 
        else 
        {
            geoinfoavailable(false);

            //do other stuff in here//

        }
    });

    alert(geoinfobool);
}

function geoinfoavailable(state)

{
    geoinfobool = state;
}
4

1 回答 1

0

在您的代码中地理编码器未定义。

尝试

var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value);
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': addresscoordinates}, function(results, status) 
{
于 2013-05-16T16:06:15.700 回答