#javascript #google-maps
#javascript #google-карты
Вопрос:
Я использую пользовательский элемент управления для своего приложения maps. Он отлично работает с FF, Safari, Chrome и IE9, но на IE8 или IE7 кажется, что событие изменения не запускается? Что здесь не так:
function bf_mapstyle_Control(controlDiv, map) {
controlDiv.style.paddingTop = '5px';
controlDiv.style.paddingRight = '20px';
// Set CSS for the control border
var controlUI = document.createElement('DIV');
controlDiv.appendChild(controlUI);
// Set CSS for the control interior
var controlText = document.createElement('DIV');
controlText.innerHTML = '<select id="select_mapstyle" style="font-family: Verdana,Arial,sans-serif; font-size : 12px; border: 1px solid #D8D8D8;border-radius: 3px; padding: 5px;">'
'<option value="0">Google Karte</option>'
'<option value="1">Google Satellit</option>'
'<option value="2" selected>OpenStreetMap</option>'
'<option value="3">OpenCyleMap</option></select>';
controlUI.appendChild(controlText);
google.maps.event.addDomListener(controlUI, 'change', function() {
var tid = document.getElementById('select_mapstyle').value;
changeMapType(tid);
});
};
function changeMapType(inType){
switch (inType){
case '0' : map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
break;
case '1' : map.setMapTypeId(google.maps.MapTypeId.HYBRID);
break;
case '2' : map.setMapTypeId('OSM');
break;
case '3' : map.setMapTypeId('OSM Cycle');
break;
}
}
Ответ №1:
Событие «change» не выводит DOM в IE. (Я думаю, это может быть в IE9.) Вам нужно будет поместить обработчик событий в сам <select>
элемент.