单击谷歌地图信息窗口按钮
Google Maps Infowindow Button onclick
嘿,伙计们,我想为地图上的每个Marker创建一个带有信息窗口的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的文档API创建内容字符串。使用它,您可以在运行时中添加方法,并且不需要担心作用域。例如,对于以下名为Edit的输入按钮,请使用下面的代码使其成为
// <input type='button' name='Edit' value='Edit' onclick='editPreference("+preference+")' id='NearbyEditButton"
// Creating input element using javascript APIs
var input = document.createElement('input');
input.setAttribute('type', 'button');
input.setAttribute('value','Edit');
function editPreference(preference){ //your code here }
google.maps.event.addDomListener(input, "click", editPreference);
在这种情况下,我只是不知道如何将preference
对象传递给editPreference
函数。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 如何在Ol3弹出窗口中添加用javascript创建的按钮上的点击事件
- 在窗口中单击按钮完成之前,光标不会停止.请继续卸载
- 如何隐藏谷歌地图Api 3中InfoBox窗口中的关闭(x)按钮
- 单击按钮时的窗口属性
- 单击谷歌地图信息窗口按钮
- Angular.js谷歌地图信息窗口按钮点击没有传递值
- 谷歌地图信息窗口按钮未显示
- 引导:弹出窗口按钮链接不工作
- 引导:点击弹出窗口按钮
- 使用angular验证引导模式窗口按钮点击时的输入字段
- 关闭当前的弹出窗口按钮点击在顶点使用salesforce
- 关闭窗口按钮- javascript
- 使用iFrame's OnSubmit函数为父窗口's按钮's OnClick事件
- jQuery UI模态弹出窗口-按钮点击
- jQuery UI模态弹出窗口按钮点击
- 以编程方式弹出“打开”窗口.按钮不工作在我的mapbox.js地图我已经创建