我有一个右键单击上下文菜单的监听器,允许我执行特定于该特定信息窗口的操作。例如,这是我的代码打开并填充方向面板:
google.maps.event.addListener(contextMenu, 'menu_item_selected', function(latLng, eventName){
switch(eventName){
case 'directions_from_click':
showDirections();
geocoder.geocode({latLng: latLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
fAddress = results[0].formatted_address;
$('#start').val(fAddress);
$('#panelWrapper').focus();
}
}
});
$('#panelWrapper').focus();
break;
case 'directions_to_click':
showDirections();
geocoder.geocode({latLng: latLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
fAddress = results[0].formatted_address;
$('#end').val(fAddress);
$('#panelWrapper').focus();
}
}
});
$('#panelWrapper').focus();
break;
}
});
除了右键单击上下文菜单外,我还希望在infowindow中有一个链接执行相同的操作:
<a class="fromLink">Directions from here</a>
如何为此链接添加侦听器以执行与我的上下文菜单类似的操作?我一直在尝试使用addDomListener函数,但我不确定这是否正是我需要的。
答案 0 :(得分:0)
我在API中找不到任何内容,所以我最终通过onclick事件将LatLng传递给函数以填充方向输入。相当难看,但有点像这样:
function addMessageMarker(marker, addlInfo){
var position = String(marker.getPosition());
var fromLink = '<a class="infoLink" onClick="getFrom("' + position + '")">Directions from here</a> - ';
... //bunch of other stuff
}
function getFrom(position) {
showDirections();
//Convert the string value into a latLng
var latLng = position.replace("(","");
latLng = latLng.replace(")","");
latLng = latLng.replace(" ","");
latLngArr = latLng.split(",");
lat = parseFloat(latLngArr[0]);
lng = parseFloat(latLngArr[1]);
latLng = new google.maps.LatLng(lat,lng);
geocoder.geocode({latLng: latLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
fAddress = results[0].formatted_address;
$('#start').val(fAddress);
}
}
});
$('#panelWrapper').focus();
}