HTML / js代码中的JQuery上下文菜单

时间:2018-07-27 08:28:40

标签: javascript jquery html contextmenu

我有一个带有一些HTML / js代码的应用程序。当我右键单击此文档的div时,我正在使用jquery在$ document元素中显示一个上下文菜单(版本:1.6.6)。使用“自动隐藏”功能,当鼠标离开HTML文档时它会关闭,但是在其他情况下,我想关闭上下文菜单。这是我的第一个问题,如何以编程方式关闭菜单。

我的代码:

$(document).contextMenu({
  selector: '#' + panelId,
  autoHide: true,
  items: ...
  callback: function(key, options) {
    if (key === ...
  } 

我有一个需要关闭菜单的功能,但是我所有的测试都失败了:

function()
{
    $(document).contextmenu(false);
    $(document).trigger('contextmenu:hide');
    $trigger = $('#' + panelId);
    $trigger.contextMenu(false);
}

'panelId'是当我在div中右键单击时使用'oncontextmenu'属性和'myFunction'值获得的值。因此,在显示上下文菜单之前会先调用“ myFunction”,然后在其中保存ID,以便在菜单“即将显示”时用于启用/禁用项目

我的第二个问题:如果右键单击div元素后将上下文菜单打开(将divId保存在“ myFunction”中),而我右键单击另一个div元素,则不会调用“ myFunction”,因此无法保存新divId,并且“新”上下文菜单具有与上一个相同的选项。打开上下文菜单后,如何获得右键单击?我需要新的divId

1 个答案:

答案 0 :(得分:0)

我已将我的插件版本更新为 https://github.com/swisnl/jQuery-contextMenu/blob/master/src/jquery.contextMenu.js 我的第二个问题解决了。

然后我发现了如何关闭菜单,也许对任何人都可以帮助

$('.context-menu-list').trigger('contextmenu:hide');

关于, 迭戈