簡體   English   中英

如何在事件偵聽器中使用局部變量?

[英]How can I use a local variable in an event listener?

我的問題是使用 Google Maps API,但我很確定這是一個普遍的 JavaScript 問題。

我有一個定義一系列標記的本地對象數組。 處理這些對象是沒有問題的。 但是我想在我創建的事件處理程序中使用其中一個值,並且在調用該事件處理程序時該值始終是“未定義的”。 (這是合乎邏輯的,因為該值是本地數組的一部分,但我不知道如何解決這個問題。)

編碼:

var markers = [
   { lat: 58, lng: 07, title: 'Marker 01', url: 'article.aspx' },
   .... /* etc */
]
for (var idx in markers) {
  var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng( markers[idx].lat, markers[idx].lng ), 
    title: markers[idx].title,
    map: map
  });
  google.maps.event.addListener( marker, 'click', function() {
    window.location.href = markers[idx].url;
  });
}

當我點擊最終地圖中的一個標記(即觸發“點擊”偵聽器)時,我被重定向到一個名為“未定義”的頁面,因為“url”屬性不再具有值。 我該如何解決?

也許您可以將 url 傳遞給調用 addListener 的函數

暫無
暫無

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

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