2017-05-09 57 views
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」。

這裏是什麼樣子後,我點擊任何標記:

after I click

我希望我足夠清楚,請告訴我,如果你需要更多的信息。

+0

經典JS範圍問題。你應該能夠找到關於該主題的許多資源,包括這裏的SO。 – ghybs

+0

非常複製https://stackoverflow.com/questions/35428801/leaflet-marker-event-fires-at-wrong-time – IvanSanchez

+0

[Leaflet標記事件在錯誤時間觸發]的可能重複(http:// stackoverflow .com/questions/35428801/leaflet-marker-event-fires-at-wrong-time) – IvanSanchez

回答