作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 ajax 将内容加载到我的信息窗口的最佳方法是什么?现在我使用 iframe 得到了类似的效果,但我对此不太满意。我认为这很简单,但由于某种原因它让我感到困惑。这就是它现在的工作方式:
var markers = [];
var infowindow = new google.maps.InfoWindow();
$.each(JSON.parse(aulas), function(i, a){
var latlng = new google.maps.LatLng(a.aula.lat, a.aula.lng);
var marker = new google.maps.Marker({
position : latlng,
title: a.aula.title
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.close();
infowindow.setContent("<div class='infowindow_content'><iframe src='aulas/show/" + a.aula.id + "'></iframe</div>");
infowindow.open(map, marker);
});
markers.push(marker);
});
在 infowindow.setContent 调用之前通过 ajax 获取内容很容易,但我想仅在 infowindow 打开时进行 ajax 调用。有什么想法吗?
顺便说一句:我正在使用 jQuery。
正如答案中所建议的,我决定将调用移至 setContent 并打开一个单独的函数。对于那些感兴趣的人来说,解决这个问题的代码是:
function load_content(marker, id){
$.ajax({
url: 'aulas/show/' + id,
success: function(data){
infowindow.setContent(data);
infowindow.open(map, marker);
}
});
}
然后更改监听器:
google.maps.event.addListener(marker, 'click', function() {
infowindow.close();
load_content(marker, a.aula.id);
});
markers.push(marker);
});
最佳答案
显示信息窗口后,您可以随时调用infowindow.setContent。因此,您最初可以使用微调器设置信息窗口内容,进行 AJAX 调用(从事件处理程序),然后使用适当的数据从 AJAX 响应中再次调用 infowindow.setContent。
关于jquery - 谷歌地图 V3 : Loading infowindow content via AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381700/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!