0
我正在與傳單庫一起在地圖上工作(使用Django framwork),我想在點擊標記時在div中顯示一些文本。傳遞JSON var在傳單「on()」方法
我做了一個JS函數來創建它與一些文本股利:
function create_div(text):
{
div = document.createElement(div);
div.id = 'article';
div.textContent = text;
document.body.appendChild(div);
}
,然後我把這個功能在「開」的小冊子 給出的,因爲我想稱之爲梅索德當我點擊一個標記:
var articles = {{ list_json | safe }};
for (var i = 0; i < {{ nb_of_articles | safe }}; i++)
{
var text = articles[i].fields.text; //I put the text of the i-th marker in text.
var lat = articles[i].fields.lat;
var lon = articles[i].fields.lon;
var marker = L.circleMarker([lat,lon]);
marker.on('click', function(e) {create_div(text);});
marker.addTo(mymap);
}
它有點兒工作,但它與我的標記提出的最後一個對象的文本中的所有DIV關聯。
例如,如果我有:
article[0].fields.text = "hello"
article[1].fields.text = "world"
我的div獲得「世界」,無論是標誌我點擊的。
我想單擊第一個標記時div中的「hello」,當單擊第二個marker時單擊div中的「world」。
這裏是什麼樣子後,我點擊任何標記:
我希望我足夠清楚,請告訴我,如果你需要更多的信息。
經典JS範圍問題。你應該能夠找到關於該主題的許多資源,包括這裏的SO。 – ghybs
非常複製https://stackoverflow.com/questions/35428801/leaflet-marker-event-fires-at-wrong-time – IvanSanchez
[Leaflet標記事件在錯誤時間觸發]的可能重複(http:// stackoverflow .com/questions/35428801/leaflet-marker-event-fires-at-wrong-time) – IvanSanchez