我正在尝试在Google地图的信息窗口中进行点击。我无法使用以下代码来实现。有人可以告诉我我在哪里做错了吗?
loadmap(){
var locations = [];var map;
for(var i=0;i<this.data.length; i++){
locations.push({
'location_name':this.data[i].location_name,
});
}
var marker; var icon;
map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: new google.maps.LatLng(40.4637, 3.7492),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
map.markers = [];
var infowindow = new google.maps.InfoWindow({
enableEventPropagation: true
});
for (var i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng('lat', 'lng'),
map: map,
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(
'<span>'+locations[i].location_name+'</span><br/>'+
'<input type="button" id="infowindow_submit" name="submit" value ="submit"/>'
);
infowindow.open(map, marker);
};
})(marker, i));
google.maps.event.addListener(infowindow, 'domready', function() {
$("#infowindow_submit").submit(function() {
console.log("hi!");
});
});
}
}
答案 0 :(得分:1)
我认为您的问题是您正在使用按钮,但尝试添加表单事件监听器。
$("#infowindow_submit").submit(() => console.log("hi!"))
适用于表单,但不适用于单个按钮。
您要寻找$("#infowindow_submit").click(() => console.log("hi!"))
吗?
我相信您的评论可能是矛盾的,这就是让我注意到上述问题的原因。
当我单击infoWindow中的按钮时,没有任何反应。点击 标记的处理程序正在执行,但信息窗口尚未准备就绪 部分
如果您单击“信息”窗口中的按钮,则domready
事件应该已经触发。我以为您根本无法打开“信息窗口”。猜猜我第一次没看错……您那里没有console.log
,也没有说您试图在此处放置断点。您拥有的console.log
位于submit
事件内部,但是您没有domready
事件函数内部。希望domready
实际上被解雇了。