2013-01-03 4 views
5

geoJSONを使用してマップ上に点数をプロットしました。ポイントをクリックすると、マップはそのポイントにズームし、別のdivの情報をプルアップします。 mouseoverイベントにポップアップを入れると、私のクリック機能は機能しなくなりました。ここでマウスオーバーでリーフレットポップアップをクリックイベントを削除します

は私のクリック機能である:ここで

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]]); 


    }​ 

は私のマウスオーバー機能である:

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

    } 

そして、ここで私はそれらを呼び出す:

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

これは、罰金に取り組んでポップアップを取得しますロールオーバーが発生しましたが、ポイントはクリックイベントに応答しなくなりました。

答えて

2

ポップアップのオフセットプロパティがあり、デフォルトは[0,6]に設定されているため、ポップアップがポイントをカバーします(白い下向きの矢印が含まれているノードが矢印より大きくなります)。ポイントをクリックする。

セットポップアップのオフセットオプション:

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

L.Pointに設けられた第二の引数は重要、y座標上向きにポップアップを移動するために、この引数を減少です。

+0

うん、それでした!素晴らしい、助けてくれてありがとう! – user1410712

関連する問題