Я хочу создать кнопку во всплывающем окне листовки, которая при нажатии будет увеличивать местоположение точки. Я определил кнопку и ее событие в функции pointToLayer()
. При нажатии кнопка не отвечает, и при проверке инструментов разработчика в веб-браузере не сообщается об ошибке. Что не так?
Код
var controllayer = L.geoJSON(JSON.parse(response), {pointToLayer: function(feature, latlng){
//popup information
var str = "<h7>" + "<b>Old Control Name: </b>" + feature.properties.controlname1 + "</h7><br>";
str += "<h7>" + "<b>New Control Name: </b>" + feature.properties.controlname2 + "</h7><hr>";
str += "<h7>" + "<b>Northing: </b>" + feature.properties.northing + "</h7><br>";
str += "<h7>" + "<b>Easting: </b>" + feature.properties.easting + "</h7><hr>";
str += "<button id = 'zoomto' class = 'btn btn-primary center-block'>Zoom In</button>";
//event for the defined button
$("#zoomto").click(function(){
mymap.setView([latlng.lat, latlng.lng], 17);
});
return L.marker(latlng).bindPopup(str);
}}).addTo(mymap);
Я определил «управляющий слой» внутри функции успеха в ajax, чтобы загрузить данные точек с сервера.
Весь раздел кода ajax выглядит так:
$.ajax({
url:'load_control.php',
success:function(response){
var controllayer = L.geoJSON(JSON.parse(response), {pointToLayer: function(feature, latlng){
//popup information
var str = "<h7>" + "<b>Old Control Name: </b>" + feature.properties.controlname1 + "</h7><br>";
str += "<h7>" + "<b>New Control Name: </b>" + feature.properties.controlname2 + "</h7><hr>";
str += "<h7>" + "<b>Northing: </b>" + feature.properties.northing + "</h7><br>";
str += "<h7>" + "<b>Easting: </b>" + feature.properties.easting + "</h7><hr>";
str += "<button id = 'zoomto' class = 'btn btn-primary center-block'>Zoom In</button>";
//event for the defined button
$("#zoomto").click(function(){
mymap.setView([latlng.lat, latlng.lng], 17);
});
return L.marker(latlng).bindPopup(str);
}}).addTo(mymap);
mymap.fitBounds(controllayer.getBounds());
}
});