【问题标题】:Popup does not open when clicking on marker safari单击标记野生动物园时弹出窗口未打开
【发布时间】:2021-03-29 19:38:51
【问题描述】:

我正在显示来自 django 模型的位置,例如带有弹出窗口的标记:

我的视图文件

<script>
        const MAP_KEY = "{{ MAP_KEY }}";
        const added_place_json = JSON.parse('{{ added_place_json | escapejs}}');
</script>

我的 js 文件

for (const place of added_place_json){
L.marker([place.fields.lat, place.fields.long]).bindPopup(
    `<div class="card" style="width: 15rem;">\n` +
    ` <h6 class="card-header">Name place:<br>${place.fields.name}</h6>\n` +
    `  <div class="card-body">\n` +
    `    <p class="card-text" style="overflow: scroll">Place comment:<br>${place.fields.comment}</p>\n` +
    `  </div>\n` +
    `</div>`
).addTo(map)

};

这在 google chrome 上运行良好,但不适用于 safari。当我在 Safari 中单击标记时,什么也没有发生

【问题讨论】:

    标签: django safari leaflet popup


    【解决方案1】:

    这是 Leaflet 1.7.1 的错误,请参阅Leaflet #7255

    在最新的传单主版本中它正在工作,请参阅Issue Comment

    所以我建议您将 Leaflet-src 从 Leaflet Release 1.7.1 更改为 Github 上的 master 分支

    【讨论】:

    • 我有问题:marker-icon-2x.png:1 GET localhost:8000/static/place_remember/leaflet/leaflet.css/images/… 404(未找到)
    • 这个问题已经存在将近 9 个月了,并且仍在生产版本中。不知道如何在 package.json 中处理它(git 分支不包含 dist JS,它只在 zip 文件中)。我喜欢传单,但那是一个炫耀。
    • @hvsp 的回答实际上是最有帮助的。在 v1.8 发布之前,您可以使用选项 tap: false 简单地初始化地图。问题 #7255 的修复(除其他外)将 tap 选项的默认值从 true 更改为 false
    【解决方案2】:

    如果由于某种原因您必须坚持使用 1.7.1 并且您不需要处理“taphold”事件,则使用 tap: false 启动地图可能会为您解决此问题。 (这里建议https://github.com/Leaflet/Leaflet/issues/7331#issuecomment-742454380

    【讨论】:

    • 此修复也适用于my issue,其中弹出窗口确实只出现了一瞬间,并且只有在稍微点击标记右侧时才能正常工作。
    猜你喜欢
    • 2020-06-03
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多