Javascript 无法使用angular 2在谷歌地图的infowindow中触发单击事件
我正在尝试在谷歌地图的信息窗口中点击。我无法用以下代码实现。谁能告诉我哪里做错了Javascript 无法使用angular 2在谷歌地图的infowindow中触发单击事件,javascript,jquery,google-maps,google-maps-api-3,infowindow,Javascript,Jquery,Google Maps,Google Maps Api 3,Infowindow,我正在尝试在谷歌地图的信息窗口中点击。我无法用以下代码实现。谁能告诉我哪里做错了 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;
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!");
});
});
}
}
loadmap(){
var位置=[];var映射;
对于(var i=0;i我认为您的问题是您正在使用一个按钮,但试图添加一个表单事件侦听器
$(“#infowindow_submit”).submit(()=>console.log(“hi!”)
适用于表单,但不适用于单个按钮
您正在查找$(“#信息窗口_提交”)。单击(()=>console.log(“嗨!”)
我相信你的评论可能相互矛盾,这正是我注意到上述问题的原因
当我单击信息窗口中的按钮时,没有发生任何事情。单击
正在执行标记的处理程序,但未执行infowindow domready
部分
如果您单击信息窗口中的某个按钮,则domready
事件应该已经触发。我以为您根本无法打开信息窗口。我想我第一次没有读对……您没有控制台.log
,也没有说您试图在那里放置断点。控制台.log
哟你确实有一个在submit
事件中,但在domready
事件函数中没有。希望domready
实际上被解雇了。这大部分看起来不像是角度代码…定义了infowindow
的地方在哪里?你是不是在为仅仅使用角度代码而挣扎纯JS事件处理程序或无法将其集成到Angular中。我想可能会有Google Maps npm包与Angular集成得更好,尽管我还没有看过。您是否遇到任何控制台错误?是否可以在单击处理程序中放置断点或console.log
,然后查看代码是否得到执行?我正在使用g纯JS代码在我的angular项目中显示地图。我在控制台中没有收到任何错误,当我单击infoWindow中的按钮时也没有发生任何事情。正在执行标记的click handler,但没有执行infoWindow domready部分。该部分未调试。我想您的问题可能是infoWindow
未定义。您还有其他代码吗?中的答案似乎创建了一个名为的变量。@ScottyWaggoner我已经更新了我的代码…定义了信息窗口,但问题仍然存在。谢谢。这是我这边的一个错误。它正在工作。您是对的。我应该使用单击