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

JQuery context menu in HTML/js code

我有一个包含一些 HTML/js 代码的应用程序。当我右键单击此文档的 div 时,我正在使用 jquery 在 $document 元素中显示上下文菜单(版本:1.6.6)。使用 'autohide' 它会在鼠标离开 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,当菜单是 'about to show'

时用于 enable/disable 项目

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

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

然后我找到了关闭菜单的方法,也许对大家有帮助:

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

此致, 迭戈