2015-10-03 4 views
-1

У меня такой скрипт.атрибуты вызова внутри функции JavaScript

map.addMarker({ 
lat: data[x]['lat'], 
lng: data[x]['lng'], 
icon: iconUsed, 
click: function() { 
    alert(lat) 
}, 
infoWindow: { 
    content: popupMaps.join(''), 
}); 

Можно ли назвать параметр «lat» внутри addMarker()? Я имею в виду, когда я нажимаю маркер, он будет предупреждать меня сам параметр lat. Я не знаю, что происходит, если я использую предупреждение (данные [x] ['lat']), он всегда будет показывать мне последнее число приращений в цикле «x».

надежда кто-то знает, что я значит извините за мой плохой английский

ответ

1

Это звучит, как вы делаете это в цикле. Если это так, переместите фактическое создание записи своей собственной функции, которую вы вызов с lat и lng:

function addMarker(lat, lng, iconUsed) { 
    map.addMarker({ 
     lat: lat, 
     lng: lng, 
     icon: iconUsed, 
     click: function() { 
      alert(lat); 
    }, 
    infoWindow: { 
     content: popupMaps.join(''), 
    }); 
} 

Вы хотите определить эту функцию в той же области, где map и popupMaps являются.

, призвав его из цикла:

addMarker(data[x]['lat'], data[x]['lng'], iconUsed); 

Таким образом, ваш click обратного вызова закрывает над lat и lng аргументы addMarker, которые не изменяются, а не над data и x, что изменения.

0

Не уверен, что, если я получил то, что вам нужно, может быть, это

var lat = data[x]['lat']; 
map.addMarker({ 
lat: lat, 
lng: data[x]['lng'], 
icon: iconUsed, 
click: function() { 
    alert(lat) 
}, 
infoWindow: { 
    content: popupMaps.join(''), 
}); 
+0

, кстати, T.J Crowder предложение работает. –

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