Контекстное меню при щелчке левой кнопкой мыши с использованием oncontextmenu и js / jquery - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть таблица, в которой, нажав любую строку, я могу получить доступ к контекстному меню

<tr oncontextmenu="return showContextMenu(event,'@item.SomeValue')"  style="cursor: pointer;">

Событие показа контекстного меню выглядит так:

var contextMenu = document.getElementById('contextMenu');

 function showContextMenu(event, elemId) {
            contextMenu.style.display = 'block';
            contextMenu.style.left = (event.pageX - 220) + 'px';
            contextMenu.style.top = (event.pageY - 48) + 'px';
        }

и событие закрытия контекстного меню следующим образом:

window.onclick = hideContextMenu;
function hideContextMenu() {
    contextMenu.style.display = 'none';
}

Контекстное меню выглядит так:

<div id="contextMenuPasta" class="contextMenu" >
    <ul>
        <li  id="renomearCMid" data-toggle="modal" data-target="#modalRenomearPasta"><span><i class="fa fa-fw fa-pencil" ></i> Renomear Pasta</span></li>
        <li  id="removerCMid"  data-toggle="modal" data-target="#modalExcluirPasta"><span><i class="fa fa-fw fa-trash-o"></i> Remover Pasta</span></li>
        <li  id="adicionarCMid" data-toggle="modal" data-target="#modalNovaPasta"><span><i class="fa fa-fw fa-plus"></i> Adicionar Pasta</span></li>
    </ul>
</div>

Есть ли способ изменить правую кнопку мыши на левую кнопку, чтобы отобразить контекстное меню? Спасибо за помощь.

1 Ответ

0 голосов
/ 21 ноября 2018

Я решил проблему следующим образом:

  1. в теге tr вместо использования 'oncontextmenu' Я использовал просто 'onclick'

  2. deleteФункция hideContextMenu

  3. Вместо этого используйте эту

    window.onclick = function (event) {
        if(event["path"][0].tagName != "TD" ){
            contextMenu.style.display = 'none';
        }
    };
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...