Javascript 从函数内部的数组中获取Id

Javascript 从函数内部的数组中获取Id,javascript,leaflet,Javascript,Leaflet,我对传单JS映射中的for循环有问题,由于某些原因,我无法获取它。请从数组中给我正确的Id,而不是给我所有clickevent上的最后一个Id。在$.get()之外,Id显示正确。但在里面我只得到了数组中的最后一个。有没有可能取消获得定制矿石的选项?有没有其他方法 for (var i = 0; i < myColumnDefs.length; i++) { var obj = myColumnDefs[i]; // obj.id = i; var lat

我对传单JS映射中的for循环有问题,由于某些原因,我无法获取它。请从数组中给我正确的Id,而不是给我所有clickevent上的最后一个Id。在
$.get()
之外,Id显示正确。但在里面我只得到了数组中的最后一个。有没有可能取消获得定制矿石的选项?有没有其他方法

for (var i = 0; i < myColumnDefs.length; i++) {
      var obj = myColumnDefs[i];
     // obj.id = i;
      var latitude = obj.GisLatitude.toFixed(5);
      var longitude = obj.GisLongitude.toFixed(5);

    //The correct id
      console.log(obj.Id);

      var m = L.marker([latitude, longitude], { icon: greenIcon }).on('click', function (e) {
        var markeren = this;
        debugger;

        $.get(ol.url('~/Map/MapContent/'), {id: m.id }, function(data) {
          L.popup()
        .setLatLng(markeren.getLatLng())
        .setContent(data)
        .openOn(map);
        });
      }).addTo(map);
      m.id = obj.Id;
      console.log('Latitude: '+latitude + ' - Longitude: ' + longitude);
    }
for(var i=0;i
在$的成功/错误处理程序中。获取上下文绑定为event.target,并且在调用事件处理程序之前,您正在迭代的循环很早就完成了。因此,您将在单击处理程序时获得最后一个ID

记录此@
var markeren=this。上下文是您所需要的。
再次在$内登录
markeren
。获取,它将不是您所期望的

适当地绑定函数上下文,您的问题就会消失。

可能重复的