2013-01-03 5 views
5

Ho un numero di punti tracciati sulla mia mappa usando geoJSON. Quando fai clic su un punto, la mappa ingrandisce il punto e recupera alcune informazioni in un altro div. Quando inserisco un popup in un evento mouseover, la mia funzione click non funziona più.popuplet popup su mouseover rimuove l'evento click

Qui è la mia funzione di clic:

function fillInfo(e) { 
     var layer = e.target; 

     document.getElementById('infoBox').innerHTML = '<h2>' + layer.feature.properties.name + '</h2>' + '<h3>' + layer.feature.properties.address + '</h3></p>' 
     } 
     //Variable to set zoom level on click 
     var southLat = layer.feature.geometry.coordinates[0] + .022438; 
     var southLong = layer.feature.geometry.coordinates[1] - .003235; 

     var northLat = layer.feature.geometry.coordinates[0] - .022438; 
     var northLong = layer.feature.geometry.coordinates[1] + .003235; 

     map.fitBounds([[southLong, southLat], [northLong, northLat]]); 


    }​ 

Qui è la mia funzione mouseover:

 function highlightFeature(e) { 
     var layer = e.target; 

     layer.bindPopup(layer.feature.properties.name) 
      .openPopup(); 


     layer.setStyle({ 
      weight: 5, 
      color: '#666', 
      dashArray: '', 
      fillOpacity: 0.7 
     }); 



     if (!L.Browser.ie && !L.Browser.opera) { 
      layer.bringToFront(); 
     } 

    } 

E qui io li chiamo:

function onEachFeature(feature, layer) { 
     layer.on({ 
      click: fillInfo, 
      mouseover: highlightFeature, 
      mouseout: resetHighlight 
     }); 
    } 

Questo diventa il popup che lavora bene su rollover, ma il punto non risponde più all'evento click.

risposta

2

C'è una proprietà offset per un popup, il valore predefinito è [0,6], pertanto il popup copre il punto (il nodo che contiene la freccia bianca verso il basso è più grande della freccia) e non sarà possibile cliccare sul punto.

Impostare l'opzione-offset della comparsa:

layer.bindPopup(layer.feature.properties.name,{offset:new L.Point(0,0)}) 
.openPopup(); 

Il secondo argomento fornito L.Point è l'importante coordinata y, diminuire questo argomento per spostare la comparsa verso l'alto.

+0

Sì, è stato così! Fantastico, grazie per l'aiuto! – user1410712