- 我正在使用 MapBox 渲染地圖。我做了一個
onClick功能,當點擊地圖時,它通過api顯示下面螢屏截圖中顯示的地理編碼資訊。

- 現在我想要的是在表格下方有一個按鈕,當點擊它時我希望它執行一個特定的功能,我已經定義了它但是當點擊它時說
Function is not defined - 代碼
map.current.on('click', function(e) {
var coordinates = e.lngLat;
var lng = coordinates.lng;
var lat = coordinates.lat;
console.log(lat);
console.log(lng);
var d = fetch("https://api.mapbox.com/geocoding/v5/mapbox.places/" lng "," lat ".json?access_token={token_value}").then(response => response.json()).then(function(data) {
console.log(data)
var str = "<table border='1'><tr><td><center>Title</center></td><td><center>Content</center></td></tr>"
for (let i in data["features"]) {
str = str "<tr><td style='padding:5px'>" data["features"][i]["place_type"][0] "</td><td style='padding:5px'>" data["features"][i]["place_name"] "</td></tr>"
}
str = str "</table>"
// button
str = str "<button onClick={myFunction}>Save</button>"
function myFunction() {
console.log('Saved pressed');
}
new mapboxgl.Popup()
.setLngLat(coordinates)
.setHTML(str)
.addTo(map.current)
});
console.log(d);
});
uj5u.com熱心網友回復:
修復代碼如下
// button
str = `<button onclick="myFunction()"}>Save</button>`;
uj5u.com熱心網友回復:
我猜想按鈕(以及為它定義的函式名稱)的創建范圍與您定義函式的范圍不同。其中之一可能有效:
- 將您的函式定義為
const myFunction = () => console.log("saved pressed"). - 嘗試將您的函式參考為
this.myFunction
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396971.html
標籤:javascript 反应 地图框
