9

için firefox'ta tetiklenmeyen etkinliklere tıklayın 'Haritalarım' işlevine benzer bir işlev almaya çalıştığım bir harita oluşturduk. Sağ taraftaki iki açılır liste var, bu ddl'lerin seçimine göre özel bir işaretleyici/simge ekleyebilirsiniz. Bir işaretçi türü seçtikten sonra haritanın sağ üst köşesindeki '+' düğmesini tıklayın ve ardından işaretleyicinin eklenmesini istediğiniz yeri tıklayın. Sorunum, IE, Safari ve Chrome'da iyi çalışıyor ancak Firefox'ta değil. Tıklama etkinliği tetiklenmiyor. İşte Google Maps API v3: Özel işaretleyici

haritanın konumudur: https://ait.saultcollege.ca/Michael.Armstrong/Index.html

düğmesi sağ üstteki işaretçi ekleyin benim 'işaretçi()' işlevine işaret onclick olayı vardır. İşte Herhangi bir yardım veya öneri harika olurdu

 
function placeMarker() { 

    select("placeMarker"); 

    var infowindow = new google.maps.InfoWindow({}); 
    var catID = document.getElementById('category'); 
    var typeID = document.getElementById('ddlType'); 
    var category = catID.options[catID.selectedIndex].value; 
    var markerType = typeID.options[typeID.selectedIndex].value; 

    if (!markerType) { 
     alert("You must select an icon type."); 
    } 
    else { 
     var moveListener = google.maps.event.addListener(customMap, 'mousemove', function(event) { 
      if (mapMarker) { 
       mapMarker.setPosition(event.latLng); 
      } else { 
       mapMarker = createMarker(event.latLng, "test", markerType, "test"); 
      } 
     }); 

     var clickListener = google.maps.event.addListener(customMap, 'click', function(event) { 
      if (mapMarker) { 
       select("hand_b"); 
       google.maps.event.clearListeners(customMap, 'mousemove'); 
       google.maps.event.removeListener(listener); 
       mapMarker = createMarker(event.latLng, "test2", markerType, "test"); 

       var htmlInfo = "" + 
        "Category:" + category + "" + 
        "Item:" + markerType + "" + 
        "Notes:" + 
        "Location:" + mapMarker.getPosition().toString() + "" + 
        "" + 
        ""; 

       //infowindow.setContent(htmlInfo); 
       //infowindow.open(customMap, mapMarker); 
      } 
     }); 
    } 
} 

function createMarker(latlng, title, icon, html) { 
    var mapMarker = new google.maps.Marker({ 
     position: latlng, 
     map: customMap, 
     title: title, 
     icon: 'Images/' + icon + '.png' 
    }); 
    return mapMarker; 
} 

function select(buttonId) { 
    document.getElementById("hand_b").className = "unselected"; 
    document.getElementById("placeMarker").className = "unselected"; 
    document.getElementById(buttonId).className = "selected"; 
} 

işaretçi(), createMarker() için kod ... olduğunu. Bu belki de ff'de bir hata olabilir mi?

+0

sitede kodu güncellenmiş biraz değişiklik yok olsa, aynı konudur: Burada

Chrome, Firefox ve IE8 üzerinde çalıştı koddur. Herhangi bir fikir? Birisi IE8, Chrome ve FireFox'ta yukarıda belirtilen siteyi açabilir ve FireFox ile ilgili bir sorun olup olmadığını bana bildirebilir mi? –

cevap

1

Açık kaynaklı bir felaket yazılım paketi için çok benzer bir şey yaptım. Bu durumda, açılır menüde "Fire" ı seçtiğimi ve bu da addFire() öğesini tetiklediğimizi varsayalım. İşaretçilerdeki dinleyici, bir tıklamadaki noktayı siler veya sürüklemenizi sağlar. Haritanın her seferinde yalnızca bir dinleyici olabilir, ancak her işaretçi aynı anda kendi dinleyicisine sahip olabilir.

 
//This function sets up the map for adding a fire icon 
function addFire() { 
//Kill old listener 
if(listening) 
    google.maps.event.removeListener(listenerhandle); 

//Start new listener 
listenerhandle = google.maps.event.addListener(disasterMap, 'click', addFirePoint); 
listening = true; 
}//end addFire 

//This function adds new fire points to the map and controls dragging and clicking 
function addFirePoint(event) { 
//Create the marker 
var fireMarker = new google.maps.Marker({ 
    icon: "./mapimgs/fire.png", position: event.latLng, map: disasterMap, draggable: true }); 

newFireMarkers.push(fireMarker); 
fireMarker.setTitle("Fire"); 

//Listen for clicks on the new marker 
google.maps.event.addListener(fireMarker, 'click', function() { 
     fireMarker.setMap(null); 
    //remove the marker from the array 
    for(i=0;i
İlgili konular