我爲地圖創建了一個標記列表,當它們被拖動到地圖上時(通過jQuery可拖動) - 圖像被替換爲地圖標記。Javascript可變範圍問題
我遇到的問題是,當創建我的標記控制器 - 它們都有一個特定的類型 - 從列表中提取。當我遍歷列表時,每個可拖動元素都會得到它的'stop'函數,該函數使用變量'type'...現在,當每個元素被拖曳時 - 它們的行爲就好像它們是最後一個'類型'一樣元素,而不是他們自己的。
任何人都可以建議我如何重組,以便每個標記保持其特定類型?
var createMarkerControl = function(){
var markerTypes = ['custom', 'exit', 'food', 'medical', 'shelter', 'video'];
var control = document.createElement('div');
control.setAttribute('id', 'markerInput');
for (var i = 0; i < markerTypes.length; i++){
var image = document.createElement('img');
image.setAttribute('id', 'draggable-' + markerTypes[i]);
image.setAttribute('src', 'images/gui/' + markerTypes[i] + '.png');
image.style.width = '30px';
//Set type
var type = markerTypes[i];
//Make elements dragable/dropable
control.appendChild(image);
$(image).draggable({
helper: 'clone',
stop: function(e){
//Add marker to map
var point = new google.maps.Point(e.pageX, e.pageY);
customMap.addPlacemark(point, type);
},
cursorAt: {left: 15, top: 0}
});
}
map.controls[google.maps.ControlPosition.RIGHT_CENTER].push(control);
}
你不應該使用'var'聲明中的'for'循環內,僅供參考。 – AlienWebguy