我想把一个带有输入字段和提交按钮的表单放在 Google Maps API (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"));
,它正确输出表单元素,但事件没有触发。
我已经将相同的事件添加到DOM中的另一个表单(具有不同的ID),并且可以正常工作。
因此,如果MooTools可以找到元素并且据说已添加了事件侦听器,那么是什么阻止了事件的触发?这是一个范围问题吗?
content
是最重要的部分。 - Dimitar Christoff