I want to add a context menu on right click for various elements on my GeoJSON layer (I'm doing a road map so on a right click on the road at any part I want to show the context menu).

I've managed to get the left click working fine by using the onEachFeature and doing the following

function onEachFeature(feature, layer) {
            click: showAssetInfo,
            contextmenu: contextreg


 function showAssetInfo(e) {
        AssetMouseClick(e.target.feature.properties.objectid, e.latlng);

For the context menu I have followed the example here . The context menu library is found here

I have the following that gets called on the document ready (jQuery)

    selector: 'path.leaflet-clickable',
    zIndex: 99999,
    callback: function (key, options) {
        var m = "clicked: " + key;
        window.console && console.log(m) || alert(m);
    items: {
        "edit": { name: "Edit", icon: "edit" },
        "cut": { name: "Cut", icon: "cut" },
        "copy": { name: "Copy", icon: "copy" },
        "paste": { name: "Paste", icon: "paste" },
        "delete": { name: "Delete", icon: "delete" },
        "sep1": "---------",
        "quit": { name: "Quit", icon: "quit" }

I've tested it and the selector does return the GeoJSON features, also if it attach the same menu to something else it works correctly.

Is there something I am missing here?

Also is there a good way to pass in the objectid to the menu when it starts up so I can use it when calling the different options of the menu

I have created this fiddle to demonstrate http://jsfiddle.net/Q3L4c/22/


The event management for Leaflet and jQuery for this use case seems to conflict.

Instead of struggling with debugging, you should better use an alternate solution like this contextMenu dedicated lib for Leaflet.

  • Very powerful and efficient API for managing tooltips in leaflet, full support for GeoJSON features as well as inherited and dynamic context menu options. – Chris Schaller Jul 15 '19 at 23:16

have you checked out anything like this

  • Yes that is the library I linked to above, am I missing something – Daniel Powell Mar 20 '13 at 9:30
  • I've been playing around with your jsfiddle example and getting nowhere. Pretty maddening. I'm more or less a newb with javascript but I was thinking of not using the plugin.It seems that the $.contextMenu is being ignored completely. – geomajor56 Mar 21 '13 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.