我正在从 GeoJSON 文件加载地图数据,并为每个多边形附加一个点击事件。单击时,脚本应从服务器获取数据并修改单击多边形的属性之一。IE:
function onClick(e) {
var status = e.target.feature.properties.ACCESS;
$.ajax({
url: "http://127.0.0.1:8080/?&u=x&p="+e.target.feature.properties.ID_PARCELL,
dataType: 'jsonp',
type: 'GET',
success: function(data) {
status = data.status;
e.target.feature.properties.ACCESS = data.status;
e.target.bindPopup("Owner: <b>"+ data.status +"</b>").openPopup();
},
error: function(data){console.log(data)}
});
e.target.feature.properties.ACCESS = status;
map.fitBounds(e.target.getBounds());
}
但是由于成功函数是一个回调(同步与否,这并不重要),我无法返回到原始事件源(即e
),因此我可以修改它的一个属性。
我的问题是:加载此数据后如何返回事件源?有没有通用的Javascript方式?如果没有,有什么方法可以通过要素 ID 查询 GeoJSON 图层?(=> 因此,我可以在 ajax 调用中发送功能 ID,然后简单地将其与响应一起返回)