2016-03-16 2 views
0

Я работаю в Листовке с помощью Mapbox и Javascript. Я знаю, что корень моей проблемы заключается в закрытии javascript внутри циклов. Я просмотрел все другие примеры и не могу найти похожего на мое.Листовые маркеры Все имеют одинаковое значение

У меня есть цикл for, проходящий через точки, которые я добавляю, но все они оказываются одинаковыми.

Это добавление листовки маркера с какой должна быть функциями, присоединенных атрибутами

marker.bindPopup(<button class = "trigger" onclick = buttonClick(geojsonFeature) </button>) 

Это функция OnClick, который при вызове должны показать количество, которое произошло в тот момент, но это показывает последний отсчет из цикла

function buttonClick(object){ 
    alert(object.properties.Count) 
} 

Я пытался что-то похожее на это:

for (var i = 1; i <= 5; i++) { 
    function clickHandler(num) { 
     $("#div" + i).click(
      function() { 
       alert(num) 
      } 
     ) 
    } 
    clickHandler(i); 

, но безрезультатно. Любая помощь будет принята с благодарностью!

ответ

1

По кнопке времени нажата, geojsonFeature не то, что вы думаете, что это ...

Таким образом, вы должны хранить его где-нибудь, и обеспечить способ его извлечения при нажатии кнопки.

Что-то вроде ...

//your creation loop 
jsonString = JSON.stringify(geojsonFeature); 

marker.bindPopup(<button class = "trigger" data-json = jsonString onclick = buttonClick(this) </button>) 
// Note the this operator that will give context when the button is clicked 
// end of your creation loop 

function buttonClick(object){ 
    // retrieve button attribute called data-json and make it an object 
    feature = JSON.parse(object.getAttribute("data-json")); 
    alert(feature.properties.Count) 
} 
+0

Спасибо за ваш ответ, но он не работает, к сожалению. Почему вы укрепили объект перед его передачей? –

+0

атрибуты html могут содержать только строки. Можете ли вы поделиться тем, что вы пытаетесь (например, на jsfiddle), чтобы узнать, где это происходит? – YaFred

+0

Я вроде как все понял. Я создал список за пределами цикла, в котором каждый geojsonFeature я затем вызывал индексы внутри этого списка, чтобы он «запомнил» значение. Спасибо за вашу помощь и интерес! –

Смежные вопросы