geojsonレイヤーのさまざまな要素の右クリックでコンテキストメニューを追加したい(ロードマップを作成しているので、コンテキストメニューを表示したい部分で道路を右クリックします)。
onEachFeatureを使用して次の操作を行うことで、左クリックを正常に機能させることができました。
function onEachFeature(feature, layer) {
layer.on({
click: showAssetInfo,
contextmenu: contextreg
});
}
function showAssetInfo(e) {
AssetMouseClick(e.target.feature.properties.objectid, e.latlng);
}
コンテキストメニューについては、ここの例に従いました 。コンテキストメニューライブラリはここにあります
ドキュメントの準備ができて呼び出される次のものがあります(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" }
}
});
私はそれをテストしましたが、セレクターはGeoJsonの機能を返します。また、同じメニューを他のものにアタッチしても、正しく機能します。
ここに欠けているものはありますか?
また、起動時にオブジェクトIDをメニューに渡すと、メニューのさまざまなオプションを呼び出すときに使用できるようにするための良い方法があります。
編集:
このフィドルは、http://jsfiddle.net/Q3L4c/22/を示すために作成しました。