javascript - Google map 信息窗口按钮 onclick

标签 javascript html google-maps

嘿伙计们,我想为 map 上的每个标记创建一个带有信息窗口的 onclickEvent。 在该信息窗口中应该有一个按钮。如果我单击按钮,则应执行带参数的函数。但这不起作用...

我的代码:

var infowindow;
google.maps.event.addListener(marker,"click",function() {
var content="<input type='button' name='Edit' value='Edit' onclick='"+editPreference(preference)+"' id='NearbyEditButton"+counterNearby+"'>"
                                                                + "<input type='button' name='Delete' value='Delete' onclick='deleteMarker(\"preference\")' id='NearbyDeleteButton"+counterNearby+"'>"
                                                                + "<br>"
                                                                + "</form>";
infowindow = new google.maps.InfoWindow();  
infowindow.setContent(content);
infowindow.open(map, marker);

这是首选项对象

var preference = {
                            type : "NEARBY",
                            marker : marker,
                            position : latLng,
                            dPar : 10,
                            cPar : 10,
                            measureFn : "Euklidische Distanz",
                            label : "Nearby" + counterNearby,
                            id : "nearby" + counterNearby,
                            deleteButton: "NearbyButton"+counterNearby,
                            editButton: "EditButton"+counterNearby
                        };

这是使用首选项参数执行的函数

function editPreference(preference) {
alert(preference.type);
deleteFromArray(preferences, preference);
if (!isNaN(document.getElementById("dPar").value)) {
    preference.dPar = document.getElementById("dPar").value;
} else {
    alert("Please enter a number for d-Paramater");
}

if (!isNaN(document.getElementById("cPar").value)) {
    preference.cPar = document.getElementById("cPar").value;
} else {
    alert("Please enter a number for c-Paramater");
}
preference.label = document.getElementById("Lab").value;
var d = document.getElementById("dist");
var d1 = d.options[d.selectedIndex].text;
preference.measureFn = d1;
alert(d1);
preferences.push(preference);

}

最佳答案

你可能想要这样的东西:

google.maps.event.addListener(marker,"click",function() {
  var content="<input type='button' name='Edit' value='Edit' onclick='editPreference("+preference+")' id='NearbyEditButton"+counterNearby+"'>"
                                                                + "<input type='button' name='Delete' value='Delete' onclick='deleteMarker(\"preference\")' id='NearbyDeleteButton"+counterNearby+"'>"
                                                                + "<br>"
                                                                + "</form>";
  infowindow = new google.maps.InfoWindow();  
  infowindow.setContent(content);
  infowindow.open(map, marker);
});

但是如果没有 editPreference 函数或不知道如何定义和使用“偏好”,就很难确定。

关于javascript - Google map 信息窗口按钮 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18106693/

相关文章:

javascript - 如何让div在悬停和点击时下沉

javascript - 如何计算 Javascript Fancytree 上的子节点数量?

javascript - 将 Canvas 分成几 block

html - 无法使用 XPath 按索引查找元素

javascript - "document.all"行在做什么?

mysql - 谷歌地图标记集群显示相同的信息窗口

javascript - 使用 javascript 一次添加 3 个事件类

javascript - 如何让 Backbone.ajax 成功返回数据

javascript - 是否可以使用 SignalR 更新 Google map 中的标记?

java - Google map v2 - 用不同颜色绘制路线 - Android