为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼啦一阵风 2023-03-03 16:15:54
我是使用传单进行编程的新手,并且将自己定义为 html、javascript 等方面的新手。在一个业余项目中,我计划在数据库中收集数据。在到达那里的步骤中,我想先达到一些目标。应该发生什么:点击地图将打开一个弹出窗口有类别可供选择[带按钮]在我选择了一个类别之后,应该会发生一些特定的事情(那是以后我更有经验的时候)只是现在:一个警报应该打开我的类别并且纬度和经度(onclick-function)应该是可见的但是现在,警报将不再使用以下代码打开。你对我有什么提示,我应该研究什么功能来解决我的问题?或者它更容易,甚至是某种错字?太感谢了 :)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);
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

将您的代码更改为:


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));


查看完整回答
反对 回复 2023-03-03
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信