swisnl / jQuery-contextMenu

jQuery contextMenu plugin & polyfill
https://swisnl.github.io/jQuery-contextMenu/
MIT License
2.25k stars 745 forks source link

Contex menu misplaced #725

Open jzav opened 4 years ago

jzav commented 4 years ago

Hello, please see https://i.imgur.com/DDDAlOi.png. Right-clicked dd. Context menu seems to be misplaced and only partly visible. Use ag-grid library -> https://www.ag-grid.com/ My project -> https://addons.mozilla.org/en-US/firefox/addon/at-your-command/

Code:

$(function() {
    $.contextMenu({
        selector: '.context-menu-one', 
        callback: function(key, options) {
            var m = "clicked: " + key;
            window.console && console.log(m) || alert(m); 
        },
        items: {
            "edit": {name: "Edit"},
            "cut": {name: "Cut"},
            "copy": {name: "Copy"},
            "paste": {name: "Paste"},
            "delete": {name: "Delete"}
        }
    });

    $('.context-menu-one').on('click', function(e){
        console.log('clicked', this);
    })    
});

Tried to add context menu via cell renderer:

function cRendererNewFolder(params) {
    params.eGridCell.addEventListener('keydown', onCellKeyDown);
    params.eGridCell.addEventListener('keyup', resetShift);
    var hodnota = '';
    if (params.value == undefined) {
        hodnota = '';
    } else {
        hodnota = params.value.toString();
        hodnota = hodnota.replace(/</g, "&lt;").replace(/>/g, "&gt;");
    }
    var icon = browser.extension.getURL('icons/iconfinder_Folder_Win_1215244.png');
    var element = document.createElement("span");
    element.style = "padding-left:" + (params.data.indent * 21) + "px";
    var imageElement = document.createElement("img");
    imageElement.src = icon;
    imageElement.width = "18";
    imageElement.height = "18";
    imageElement.style = "vertical-align: middle;"
    element.appendChild(imageElement);
    var textElement = document.createTextNode(' ' + hodnota);
    element.appendChild(textElement);
    element.className = "context-menu-one";
    return element;
}