2011-10-24 74 views
1

我爲我的地圖應用程序使用自定義控件。它適用於FF,Safari,Chrome和IE9,但在IE8或IE7上,似乎更改事件並未解僱?請告訴我錯在這裏:Maps Api v3自定義控件無法與IE8配合使用

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; 
    } 
} 

回答

0

的「改變」事件不會冒泡了IE中的DOM。 (它可能在IE9我猜。)你必須把事件處理程序放在<select>元素本身。

+0

就是這樣!謝謝 – fillibuster

相關問題