簡體   English   中英

如何在Javascript函數內部的變量中訪問變量?

[英]How Do I access a variable inside a variable inside a function in Javascript?

我需要通過單擊按鈕將x分配給lat對象來更改地圖函數內部的center值。 但是,我似乎無法弄清楚如何從我的alertFunction中分配map.center.lat = 43.138428。 本質上,我在問如何從另一個函數引用一個對象,一個對象內部,一個函數內部。 我在Rails內部工作。

<script>
//function to update my center
function alertFunction() {
    var x = document.getElementById("myInput").value;
    initMap();
    **Wrong Code**
    **// map.center.lat = 43.138428;**
};

//function to start map
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center:{lat: 41.138428, lng:-85.140239},
    });

您的initMap函數應該返回一些值,或者您可以使用參數來設置.lat

// the latter
function alertFunction() {
    var x = document.getElementById("myInput").value;
    initMap(43.138428);
    //      ^ pass latitude value
};

//function to start map
function initMap(latitude) {
//               ^ parameter
  var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center:{lat: latitude, lng:-85.140239},
      //           ^ from parameter
  });
}

// the former
function alertFunction() {
    var x = document.getElementById("myInput").value;
    var map = initMap();
    //        ^ initMap returns the map
    map.center.lat = 43.138428;
};

//function to start map
function initMap(latitude) {
 return new google.maps.Map(document.getElementById('map'), {
   zoom: 10,
   center:{lat: latitude, lng:-85.140239},
 });
}
<script>
//function to update my center
function alertFunction() {
    var x = document.getElementById("myInput").value;
    var map = initMap();
    **Wrong Code**
    **// map.center.lat = 43.138428;**
};

//function to start map
  function initMap() {
    return map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center:{lat: 41.138428, lng:-85.140239},
    });

重新運行地圖,否則您必須使用全局變量。

他們在Google Maps文檔中顯示它-您需要在函數外部聲明“ map”變量,否則其他函數將無法訪問該變量。

    <script>
  var map;
  function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: -34.397, lng: 150.644},
      zoom: 8
    });
  }
</script>

這樣,您的initMap()會在initMap函數外部更改變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM