【问题标题】:Leaflet map doesnt run mouse events传单地图不运行鼠标事件
【发布时间】:2021-04-07 20:18:30
【问题描述】:

我的问题是传单地图没有响应点击事件。 我使用教程代码添加地图:

var mymap = L.map('mapid').setView([51.505, -0.09], 13);

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors',
    maxZoom: 19
}).addTo(mymap);

mymap.on('click', function(e) {alert('map click!')});

在此之后,我得到了一个很好的响应式地图。我可以平移和缩放,但它不响应点击。 什么会导致它不传播我注册的事件?

编辑:当我添加一个标记并将鼠标悬停在它上面时,使用 bindTooltip() 添加的工具提示不显示,当我单击标记时,使用 bindPopup() 添加的弹出窗口不显示。 就好像地图没有将鼠标事件传播到注册的处理程序并且没有响应悬停事件。

【问题讨论】:

    标签: javascript leaflet


    【解决方案1】:

    也许您的浏览器会阻止弹出警报。 试试
    mymap.on('click', function (e) { console.log(e) });

    【讨论】:

    • 我试过了。由于某种原因它根本不调用该函数
    • 尝试照原样复制本教程示例中的代码并删除不必要的部分leafletjs.com/examples/quick-start/example.html
    • 当我运行那个确切的代码时它可以工作,但是在我的代码中,我没有改变任何东西。不同的是我在地图 div 之后添加了几个元素
    • @Oberon:“我在地图 div 之后添加了几个元素”,这可能确实可以解释事情,特别是如果你指定了它们的位置和添加一些带有停止传播的单击和鼠标悬停事件侦听器。您应该将代码添加到您的问题中,确保它重现您的问题(使用 SO 代码 sn-p 功能,或其他服务,例如 JSFiddle 或 leafletjs.com/edit.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多