动态加载时,Leaflet不会显示标记

时间:2013-01-04 10:07:20

标签: javascript jquery ajax leaflet

如果我这样自己链接脚本:

<script src="dist/js/osm/leaflet.js" type="text/javascript"></script>
一切正常。但是,只要我想像这样动态加载我的脚本:

$.ajax({
    type: "GET",
    url: "dist/js/osm/leaflet.js",
    dataType: "script",
    async: false
});

地图会显示但是应显示的所有标记都会显示出来。 如你所见,我也试过

async: false

但这不会解决问题。

注意:我还加载了自己编写的第二个脚本,但在动态加载时效果非常好。唯一不起作用的是在显示的地图上添加标记,正如我提到的那样。

请帮我这个, 提前谢谢。

1 个答案:

答案 0 :(得分:7)

当你像这样动态加载传单时,它将无法计算出它的加载位置,因此它无法确定标记图标的正确URL。原因是它查找了加载传单的script标记,以确定它从哪个路径加载,以及使用这样的AJAX加载时,没有script标记可供查找。

您可以通过在传单加载之后和创建任何标记之前将L.Icon.Default.imagePath设置为传单图像的基本URL来解决此问题。