我有很多标记,并且我试图将标记ID引用到click事件,以便以模式形式访问其各个属性
//clusters
var markers= L.markerClusterGroup({
chunkedLoading: true,
disableClusteringAtZoom: 15,
minZoom : 2
});
% for item in markers %}
//create map icons from database
var mapicons= L.icon({
iconUrl: '{{ item[2] }}',
iconSize: [30, 30]
});
var marker{{ item[0] }} = L.marker({{ item[3:] }}, {icon: mapicons})
marker{{ item[0] }}.bindTooltip('{{ item[1] }}');
markers.addLayer(marker{{ item[0] }});
map.addLayer(markers)
{ % endfor %}
这有效,但是我知道它的方法不正确,因为我再次在ajax中调用for循环,以引用其id为“ item [0]”,这会影响性能。
//ajax call
{% for item in markers %}
marker{{item[0]}}.on({
click: function (evt) {
$.ajax({
url: "/~s16/c-bin/queries.py",
async: true,
type: "post",
datatype:"json",
data: {'pid': {{item[0]}} },
success: markerModal
})
}
function markerModal(response) {
// Doing stuff here with response
}
{ % endfor %}