在单击事件Jquery中获取变量

时间:2013-03-13 12:58:17

标签: jquery google-maps

我正在使用Google地图,我正在尝试访问函数内的变量,但我不知道如何。

 if(navigator.geolocation) {

    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
     // map.setCenter(initialLocation);
       markerL = new google.maps.Marker({
                        position: initialLocation,
                       map: map,
                        title: "You are Here",
                    });

                     markerL.setMap(map);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });

  } 

我想在这里访问initalLocation

var directionsService = new google.maps.DirectionsService();
     var directionsDisplay = new google.maps.DirectionsRenderer();
  directionsDisplay.setMap(map);
     directionsDisplay.setPanel(document.getElementById('panel'));

     var request = {
       origin: window.initialLocation, 
       destination: 'london',
       travelMode: google.maps.DirectionsTravelMode.DRIVING
     };

     directionsService.route(request, function(response, status) {
       if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(response);
       }
     });

Firebug告诉我initalLocation未定义。 有什么想法吗?

干杯

2 个答案:

答案 0 :(得分:0)

尝试设置如下值:

window.initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

即。始终使用window.前缀。

请注意,使用window对象保存全局变量不是最好的编程习惯。如果您的脚本很小,那就没关系。

答案 1 :(得分:0)

geolocation.getCurrentPosition()的回调将被异步调用,因此在执行回调之前无法访问该变量。

解决方案:getCurrentPosition()

的回调中调用directionsService-request