Javascript Google Maps API v3:单击firefox中未触发的自定义标记事件

Javascript Google Maps API v3:单击firefox中未触发的自定义标记事件,javascript,google-maps,google-maps-api-3,mouseclick-event,Javascript,Google Maps,Google Maps Api 3,Mouseclick Event,我已经创建了一个地图,我正试图拥有类似于“我的地图”的功能。我在右边有两个下拉列表,根据这些ddl中的选择,您可以添加自定义标记/图标。选择标记类型,然后单击地图右上角的“+”按钮,然后单击要添加标记的位置。我的问题是,这在IE、Safari和Chrome中运行良好,但在firefox中却不行。单击事件似乎没有启动 以下是地图的位置: 右上角添加标记的按钮有一个onclick事件,指向我的“placeMarker()”函数。以下是placeMarker()、createMarker()的代码 函

我已经创建了一个地图,我正试图拥有类似于“我的地图”的功能。我在右边有两个下拉列表,根据这些ddl中的选择,您可以添加自定义标记/图标。选择标记类型,然后单击地图右上角的“+”按钮,然后单击要添加标记的位置。我的问题是,这在IE、Safari和Chrome中运行良好,但在firefox中却不行。单击事件似乎没有启动

以下是地图的位置:

右上角添加标记的按钮有一个onclick事件,指向我的“placeMarker()”函数。以下是placeMarker()、createMarker()的代码

函数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; 如果(!markerType){ 警报(“您必须选择图标类型”); } 否则{ var moveListener=google.maps.event.addListener(自定义映射,'mousemove',函数(事件){ 如果(地图标记){ mapMarker.setPosition(事件latLng); }否则{ mapMarker=createMarker(event.latLng,“test”,markerType,“test”); } }); var clickListener=google.maps.event.addListener(自定义映射,'click',函数(事件){ 如果(地图标记){ 选择(“手Èb”); google.maps.event.clearListeners(customMap,'mousemove'); google.maps.event.RemovelListener(监听器); mapMarker=createMarker(event.latLng,“test2”,markerType,“test”); var htmlInfo=“”+ “类别:”+类别+“”+ 项目:“+markerType+”+ “注意:”+ 位置:“+mapMarker.getPosition().toString()+”+ "" + ""; //setContent(htmlInfo); //打开(自定义地图、地图标记); } }); } } 函数createMarker(板条、标题、图标、html){ var mapMarker=new google.maps.Marker({ 位置:latlng, 地图:自定义地图, 标题:标题,, 图标:“图像/”+图标+”.png” }); 返回地图标记; } 功能选择(按钮){ document.getElementById(“hand_b”).className=“未选中”; document.getElementById(“placeMarker”).className=“未选中”; document.getElementById(buttonId).className=“已选定”; }
任何帮助或建议都会很棒。这可能是ff中的错误吗?

我为一个开源灾难软件包做了类似的事情。在本例中,假设我在下拉菜单中选择了“Fire”,这将触发addFire()。标记上的侦听器将在单击时删除该点或允许您拖动该点。映射一次只能有一个侦听器,但每个标记仍可以同时有自己的侦听器

以下是在Chrome、Firefox和IE8上运行的代码:

//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 //此函数用于设置用于添加火灾图标的地图 函数addFire(){ //杀死老听众 如果(听) google.maps.event.removeListener(listenerhandle); //启动新的侦听器 listenerhandle=google.maps.event.addListener(disasterMap,'click',addFirePoint); 倾听=真实; }//结束addFire //此功能向地图添加新的火力点,并控制拖动和单击 函数addFirePoint(事件){ //创建标记 var fireMarker=new google.maps.Marker({ 图标:“./mapimgs/fire.png”,位置:event.latLng,map:disasterMap,draggable:true}); 新建fireMarker.push(fireMarker); fireMarker.setTitle(“火灾”); //收听新标记上的单击 google.maps.event.addListener(fireMarker,'click',function(){ fireMarker.setMap(空); //从阵列中删除标记
对于(i=0;网站上的代码有点更新,但没有变化,是同一个问题。有什么想法吗?有人能打开上面在IE8、Chrome和FireFox中发布的网站,告诉我他们是否也有FireFox的问题吗? //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