传单 - 弹出窗口中的按钮应引用 onclick.location 但不是

Leaflet - button in a popup should refer to onclick.location but doesn't

我是使用 leaflet 进行编程的新手,我认为自己仍然是 html、javascript 等方面的新手。 在一个业余项目中,我计划在数据库中收集数据。 在到达那里的步骤中,我想先达到一些目标。 应该发生什么:

但是现在,使用以下代码将无法再打开警报。你对我有什么提示,我应该研究什么功能来解决我的问题?还是更简单,甚至是某种打字错误?

非常感谢:)

function onMapClick(e) {
    newpopup
        .setLatLng(e.latlng)        
        .setContent("<h4>Neuen Standort hinzufügen</h4> <p>Füge einen Standort hinzu z.B. dein Lieblingsrestaurant.</p>" + '<button id="Restaurant" ion-button class="button-action" onclick="btn_action_res() + e.latlng" block>Restaurant</button>'
            + '\n <button id="Spielplatz" ion-button class="button-action" onclick="btn_action_spi() + e.latlng" block>Spielplatz</button>') 
        .openOn(map);
}

function btn_action_res() {
    alert("Latitude : " + e.latlng.lat + "\nLongitude : " + e.latlng.lng);
    }

function btn_action_spi() {
    alert("Latitude : " + e.latlng.lat + "\nLongitude : " + e.latlng.lng);
    }

map.on('click', onMapClick);

将您的代码更改为:

newpopup = L.popup();
function onMapClick(e) {
    var latlngStr = JSON.stringify([e.latlng.lat,e.latlng.lng]);
    newpopup
        .setLatLng(e.latlng)        
        .setContent("<h4>Neuen Standort hinzufügen</h4> <p>Füge einen Standort hinzu z.B. dein Lieblingsrestaurant.</p>" + '<button id="Restaurant" ion-button class="button-action" onclick="btn_action_res(\''+latlngStr+'\')" block>Restaurant</button>'
            + '\n <button id="Spielplatz" ion-button class="button-action" onclick="btn_action_spi(\''+latlngStr+'\')" block>Spielplatz</button>') 
        .openOn(map);
}

function btn_action_res(latlngStr) {
    var latlng = L.latLng(JSON.parse(latlngStr));
    alert("Latitude : " + latlng.lat + "\nLongitude : " + latlng.lng);
    }

function btn_action_spi(latlngStr) {
    var latlng = L.latLng(JSON.parse(latlngStr));
    alert("Latitude : " + latlng.lat + "\nLongitude : " + latlng.lng);
    }

map.on('click', onMapClick);
  1. 将您的 latlng 转换为字符串:var latlngStr = JSON.stringify([e.latlng.lat,e.latlng.lng]);
  2. 将您的按钮 onclick 更新为:onclick="btn_action_spi(\''+latlngStr+'\')" 并传递 latlng 字符串
  3. 读出函数中的latlngStr然后转换回L.latLng:函数var latlng = L.latLng(JSON.parse(latlngStr));