单击 RMB 时,jsTree 上下文菜单不显示在树节点上

jsTree contextmenu not presenting on tree-node when RMB clicked

我有一个网站。

它有两页。

pg1 仅供我在简单的环境中使用 jsTree。这里一切正常。

pg2 是生产应用程序。这是我遇到这个问题的地方。

两个页面中的代码相同,jsTree 可以很好地用于所有其他目的。我从头开始构建树,现在只添加一个上下文菜单项。

第一个区别是我的生产页面 jsTree 托管在 jqWidget jqxWindow 中。

两个页面都托管在 python-web2py 上,但演示页面实际上不是 web2py 页面。该演示确实通过了 web2py 控制器,但页面是直接的 html/doesn 不包括 web2py javascript 框架或视图对象。如果我在演示页面上查看源代码,它几乎与我在编辑器中看到的一模一样。

综上所述,我无法让您认为 jqxWidgets 或 web2py 是此问题的根源。

.

这是有问题的代码,在两个页面中都是相同的。

, 'contextmenu': {
    'items': function (node) {
        var tmp = $.jstree.defaults.contextmenu.items();
        delete tmp.rename;
        delete tmp.remove;
        delete tmp.ccp;
        tmp.create.label = "New Folder";
        return tmp;
    }
}
, 'plugins': ['contextmenu']

.

当我在演示页面中单击 jsTree 的节点时,一切正常。

问题是当我在生产页面中单击 jsTree 的节点时没有任何反应。什么都没有。上下文菜单在浏览器中没有 render/appear。好像生产的jsTree听不到人民币点击。

编辑: 我也刚刚意识到这一点。在页面上的任意位置单击 RBM 都会弹出浏览器标准上下文菜单.... Except 在 jsTree 节点上。在节点上-什么都没有。这往往让我相信它与 jqWidgets 或 web2py 无关。

是什么阻止了 jsTree 显示上下文菜单?我可以从样式元素中丢失吗?生产页面是否有某些 contextmenu.js 文件未获取?

如果您认为 jqWidgets 或 web2py 可能是它的根

既然您在控制台中成功获得了测试消息,我猜上下文菜单是存在的,只是不可见。

上下文菜单将是具有 class vakata-context jstree-contextmenu jstree-default-contextmenuul 元素。当您 right-click 将鼠标放在节点上时它会被添加,然后当您在它外面单击时会被删除。尝试右键单击它,然后在 DOM(元素控制台选项卡)中搜索该菜单元素。