Я хочу поместить форму с полем ввода и кнопкой отправки внутри API Карт Google (v3) InfoWindow.
При отправке я хотел бы вызвать функцию, которая инициирует службу маршрутов, используя адрес, введенный в поле ввода.
Здесь мой код (в настоящее время я проверяю, запускается ли только событие направления. Я написал полное событие getDirections()
и могу подтвердить, что он работает и возвращает направления при правильном запуске):
Я попытался добавить прослушиватель событий с помощью MooTools, например:
var infoWindowContent = "<b>Get Directions From...</b><br />"
+ "<form id='map-form'>"
+ "Address/Postcode: <input id='map-from-address' type='text' />"
+ "<input type='submit' id='map-go' value='Go' />"
+ "</form>";
var infoWindow = new google.maps.InfoWindow({
content: infoWindowContent
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map, marker);
dbug.log($("map-form"));
$("map-form").addEvent("submit", getDirections);
});
function getDirections(event)
{
dbug.log("getDirections");
event.stop();
}
Поскольку я использую MooTools в другом месте на моем сайте, я помещаю весь код в window.addEvent('load', function(){...});
Обратите внимание на трассировку консоли dbug.log($("map-form"));
, которая корректно выводит элемент формы, но событие не запускается.
Я добавил одно и то же событие в другую форму (с другим ID) в DOM, и он отлично работает.
Итак, если MooTools может найти элемент и, предположительно, добавить прослушиватель событий, что мешает запуску события? Это проблема с областью?