0

こんにちは、私より賢い人たち。;) コードのこの奇妙な動作を理解することは本当にできません。

ボタンが押されたときに関数 fixedlocation() を実行して、有効なアドレスが見つかるかどうかを確認し、コードを実行することになっています。

それが適切に機能するかどうかを確認するために、変更する必要があるブール値の状態を示すアラートがコードに含まれています。理由はよくわかりませんが、ボタンを2回押してからのみ機能します。つまり、有効なアドレスが見つかったとしても、最初にアラートが誤って表示されます...

最初は、変数を定義した場所に関係があるに違いないと思っていましたが、2回目は機能しませんでしたか?

助けや正しい方向への指摘は大歓迎です。

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 に答える