1

わからないという問題が発生しています。phonegap を使用して現在の緯度と経度を取得し、値を変数に割り当てています。

アプリ内の複数の場所で緯度と経度を使用するため、他の場所で使用できる変数に割り当てる必要があります。

このセットアップでは、html 出力は「未定義」です。

これは、私が見逃しているjavascriptとasyncに関係していると確信しています...助けはありますか?

/******************** Life Cycle ************************/

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

/******************** Device is Ready ************************/

function onDeviceReady() {


/******************** Geo Info ************************/

    // Variables
    var currentLat;
    var currentLon;
    var geoWatchID = 0;

    // get current geo location
    if (geoWatchID == 0) {
        var geoOptions = {maximumAge: 3000, enableHighAccuracy: true};
        geoWatchID = navigator.geolocation.watchPosition(onSuccess, onError, geoOptions);

        function onSuccess(position) {
            currentLat = position.coords.latitude;
            currentLon = position.coords.longitude;
        }

        function onError(error) {
            alert('code: ' + error.code + '\n' +
                  'message: ' + error.message + '\n');
        }

    } else {
        navigator.geolocation.clearWatch(geoWatchID);
        geoWatchID = 0;
    }

    // display the current latitude and longitude w/ jquery
    $('#currLat').html(currentLat);
    $('#currLon').html(currentLon);

} // END device is ready 

誰もこれで以前に働いていましたか?

4

1 に答える 1

3

onSuccessjQueryステートメントの後でのみ呼び出されるためですので、試してみてください

    function onSuccess(position) {
        currentLat = position.coords.latitude;
        currentLon = position.coords.longitude;

        // display the current latitude and longitude w/ jquery
        $('#currLat').html(currentLat);
        $('#currLon').html(currentLon);
    }

編集:

    function onSuccess(position) {
        currentLat = position.coords.latitude;
        currentLon = position.coords.longitude;
        update();    
    }

    function update(){
        // display the current latitude and longitude w/ jquery
        $('#currLat').html(currentLat);
        $('#currLon').html(currentLon);
    }
于 2013-03-13T16:48:17.453 に答える