我設法用leaflet.js創建地圖& jQuery mobile。 現在我需要擺脫jQuery手機,而只是使用jQuery。小冊子地圖:使多邊形可點擊
一切正常,但我不能點擊我在地圖上繪製的多邊形了。它曾與jQuery手機合作過。
任何提示?
這裏是我的簡化代碼:
var map = L.map('map', {
zoomControl: false
});
L.tileLayer('http://{s}.tile.cloudmade.com/**apikey***/997/256/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
maxZoom: 18
}).addTo(map);
對於多邊形:
var geojsonFeature = { "type": "Polygon","coordinates": value.polygon};
var polycolor = getGebColor(value.geb_nr);
var geojsonStyle = {"color": polycolor};
polygons[i] = L.geoJson(geojsonFeature, {style: geojsonStyle}).addTo(map);
// make clickable
polygons[i].on('click', function(e) {
if (lastMarker) {
map.removeLayer(lastMarker);
}
var url = "http://*****/tugetherMap.php?callback=&id="+value.id+"&type=B";
markers[i] = L.marker([value.point[1], value.point[0]]).addTo(map);
gebName = value.nameLang;
markers[i].bindPopup("<a class='gebOnMap' href='gebaeude.html' >"+gebName+"</a>").openPopup();
lastMarker = markers[i];
});
的多邊形[I]。對( '點擊',...)是其中一部分不再工作了。它適用於map.on(「點擊」,...)
在將多邊形添加到地圖之前,您是否嘗試添加點擊功能? – apohl
沒有。但我只是嘗試了一下,它給了我一個錯誤,因爲多邊形在那個時候沒有定義。 – lornz
你可以分割它,所以你定義多邊形,添加點擊功能,然後將其添加到地圖。 'polygons [i] = L.geoJson(geojsonFeature,{style:geojsonStyle});' '多邊形[I]。對(' 點擊 '功能(E){};' '多邊形[I] .addTo(地圖);」 – apohl