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

我是使用传单进行编程的新手,并且将自己定义为 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);


呼啦一阵风
浏览 172回答 1
1回答

手掌心

将您的代码更改为:newpopup = L.popup();function onMapClick(e) {&nbsp; &nbsp; var latlngStr = JSON.stringify([e.latlng.lat,e.latlng.lng]);&nbsp; &nbsp; newpopup&nbsp; &nbsp; &nbsp; &nbsp; .setLatLng(e.latlng)&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; .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>'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + '\n <button id="Spielplatz" ion-button class="button-action" onclick="btn_action_spi(\''+latlngStr+'\')" block>Spielplatz</button>')&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; .openOn(map);}function btn_action_res(latlngStr) {&nbsp; &nbsp; var latlng = L.latLng(JSON.parse(latlngStr));&nbsp; &nbsp; alert("Latitude : " + latlng.lat + "\nLongitude : " + latlng.lng);&nbsp; &nbsp; }function btn_action_spi(latlngStr) {&nbsp; &nbsp; var latlng = L.latLng(JSON.parse(latlngStr));&nbsp; &nbsp; alert("Latitude : " + latlng.lat + "\nLongitude : " + latlng.lng);&nbsp; &nbsp; }map.on('click', onMapClick);将您的 latlng 转换为字符串:var latlngStr = JSON.stringify([e.latlng.lat,e.latlng.lng]);将您的按钮更新onclick为:onclick="btn_action_spi(\''+latlngStr+'\')"并传递 latlng 字符串读出latlngStr函数中的,然后转换回L.latLng:函数var latlng = L.latLng(JSON.parse(latlngStr));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript