【发布时间】:2015-12-31 01:50:54
【问题描述】:
我目前在传单地图上放置带有弹出窗口的标记,如下所示:
L.marker([33.767675, -84.537291], {icon:orangeIcon}).addTo(map).bindPopup("弹窗的一堆动态html内容");
我有很多标记,有很多弹出内容,所以为了加快我的地图渲染/页面加载,我想用基于 URL 的内容填充实际的弹出窗口,但只有在单击该标记时。
关于如何做到这一点的任何想法?
我确实找到了这个例子(通过https://github.com/Leaflet/Leaflet/issues/947),但我的弹出窗口只是停留在“正在加载...”并且似乎从未加载过网址:
var marker = L.marker([33.767675, -84.537291]).addTo(map);
marker.bindPopup("Loading...");
marker.on('click', function(e) {
var popup = e.target.getPopup();
var url="http://www.someurl.com/file.html";
$.get(url).done(function(data) {
popup.setContent(data);
popup.update();
});
});
在想也许 .get 方法应该是 .ajax ,我试过这个......但仍然没有骰子:
var marker = L.marker([33.767675, -84.537291]).addTo(map);
marker.bindPopup("Loading...");
function onMapClick(e) {
var popup = e.target.getPopup();
var url="http://www.r-stop.com";
$.ajax({
url:"http://www.r-stop.com/index.html"
}).done(function( data ) {
popup.setContent( data );
popup.update();
});
};
marker.on('click', onMapClick );
所以...EDIT.... 下面的代码有效,但返回 .fail 函数。 似乎我的 $.ajax 请求有问题。弹出窗口填充了“失败:[object OBJECT]”
var marker = L.marker([33.767675, -84.537291]).addTo(map);
marker.bindPopup("Loading...");
function onMapClick(e) {
var popup = e.target.getPopup();
$.ajax({
url: "myfile.html",
})
.done(function( data ) {
popup.setContent( data );
popup.update();
})
.fail(function( data ) {
popup.setContent( 'FAIL: ' + data );
popup.update();
});
};
marker.on('click', onMapClick );
【问题讨论】:
标签: leaflet