6

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) {
        layer.on({
            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)

$.contextMenu({
    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/

2 Answers 2

3

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.

1
  • Very powerful and efficient API for managing tooltips in leaflet, full support for GeoJSON features as well as inherited and dynamic context menu options. Commented Jul 15, 2019 at 23:16
0

have you checked out anything like this

2
  • Yes that is the library I linked to above, am I missing something Commented Mar 20, 2013 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
    Commented Mar 21, 2013 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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