繁体   English   中英

存储 Google 地图标记信息

[英]Store Google Maps Marker Info

我正在尝试使用以下代码将点击的标记的标题存储在全局变量中:

var selectedUser; //returns undefined 

function attachSecretMessage(marker, secretMessage) {
  var infowindow = new google.maps.InfoWindow({
    content: secretMessage
  });

  marker.addListener('click', function() {
    infowindow.open(marker.get('map'), marker);
    selectedUser = secretMessage;
    console.log(selectedUser); //Gives title of selected marker
  });

}

function selectedUser () {
    document.write(selectedUser); // returns undefined
}

以下是我在 HTML 中调用 selectedUser() 的方式:

<div class="selectedUsername">
    <h2><script type="text/javascript">selectedUser();</script></h2>
</div>

但我只得到 undefined 返回。 我该如何解决这个问题并能够存储点击标记的标题并在其他地方访问它?

它实际上确实将它写在全局变量中。 你的 console.log 证明了这一点。 我认为您的 selectedUser() 函数在点击发生之前执行。 这就是您未定义的原因。您的点击回调尚未执行。 尝试这样做(也更改名称):

var selectedUser; //returns undefined 

function writeSelectedUser () {
    docment.getElementByTagName('h2')[0].innerHTML = secretUser;
}

function attachSecretMessage(marker, secretMessage) {
  var infowindow = new google.maps.InfoWindow({
    content: secretMessage
  });

  marker.addListener('click', function() {
    infowindow.open(marker.get('map'), marker);
    selectedUser = secretMessage;
    writeSelectedUser();
    console.log(selectedUser); //Gives title of selected marker
  });

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM