InfoWindows出现问题。不太确定如何处理

时间:2019-08-23 12:30:51

标签: javascript google-maps google-maps-api-3

我正在尝试为标记的Infowindow内容创建一个编辑系统。我需要获取点击标记的ID值,但是我不确定如何获取它。

我试图通过信息窗口中的按钮来获取值 用这个代码 infowindow.setContent( "<div id='infowindow'>"+ addDescription +"</div>"+"<div id='iddiv'>Id: "+addId+"</div>"+"<button onclick='sendToEdit'>edit</button>");,但我想它没有用。结果是未定义的值。

这是sendToEdit()函数

function sendToEdit()
{
  var addIdStr = JSON.stringify(addId);
  $.ajax({
    url: "edit.php",
    method: "post",
    data: {addId:addIdStr},
    success: function(res)
    {
      console.log("success")
    }
  });
  window.open("edit.php");
}
function AddMarker(addDescription,addId)
  {
    var marker = new google.maps.Marker(
    {
      position: {lat: arr[0], lng:arr[1]},
      map: map,
      title: 'Click to zoom',
      id: addId,
    });
    markers.push(marker);
    google.maps.event.addListener(marker, 'click', function(){
        infowindow.close(); // Close previously opened infowindow
        infowindow.setContent( "<div id='infowindow'>"+ addDescription +"</div>"+"<div id='iddiv'>Id: "+addId+"</div>"+"<button onclick='sendToEdit()'>edit</button>");
        infowindow.open(map, marker);
      });
  }

1 个答案:

答案 0 :(得分:0)

要为特定标记编辑特定信息窗口,您需要发送该标记自己的ID。

"<button onclick='sendToEdit(" + marker.id + ")'>edit</button>"

然后,您可以在sendToEdit函数中获取此ID:

function sendToEdit(markerId)
{
  var addIdStr = JSON.stringify(markerId);
}

希望这会有所帮助。