How do I get the latlng after the dragend event in leaflet?

I think the API changed.

Nowadays is: const { lat, lng } = e.target.getCenter();


latlng value is not in e.latlng but in e.target._latlng . Use console.


While using e.target._latlng works (as proposed by this other answer), it's better practice to use

e.target.getLatLng();

That way we're not exposing any private variables, as is recommended by Leaflet:

Private properties and methods start with an underscore (_). This doesn’t make them private, just recommends developers not to use them directly.


Use e.target.getLatLng() to get the latlng of the updated position.

    // Script for adding marker on map click
    function onMapClick(e) {

        var marker = L.marker(e.latlng, {
                 draggable:true,
                 title:"Resource location",
                 alt:"Resource Location",
                 riseOnHover:true
                }).addTo(map)
                  .bindPopup(e.latlng.toString()).openPopup();

        // #12 : Update marker popup content on changing it's position
        marker.on("dragend",function(e){

            var chagedPos = e.target.getLatLng();
            this.bindPopup(chagedPos.toString()).openPopup();

        });
    }

JSFiddle demo