我设法用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