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

时间:2017-01-27 15:14:05

标签: javascript jquery web2py jstree jqwidget

我有一个网站。

它有两页。

pg1只适合我在简单的环境中使用jsTree。事情在这里很好。

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

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

#1的区别在于我的生产页面jsTree托管在jqWidget jqxWindow中。

两个页面都托管在python-web2py上,但是演示页面确实不是web2py页面。该演示确实通过web2py控制器但页面是直接html /不包括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节点时没有任何反应。什么都没有。上下文菜单不会在浏览器中呈现/显示。就好像生产jsTree没有听到人民币点击。

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

什么可能阻止jsTree呈现上下文菜单?我可以在样式元素中丢失吗?是否有一些contextmenu.js文件没有生成页面?

如果您认为jqWidgets或web2py可能是此

的根
  • a)我该如何证明这一点&
  • b)如何训练javascript以允许人民币点击传递给jsTree?

1 个答案:

答案 0 :(得分:2)

由于您在控制台中成功获取了测试消息,我的猜测是上下文菜单在那里,只是不可见。

上下文菜单将是ul元素,其中包含类vakata-context jstree-contextmenu jstree-default-contextmenu。在节点上右键单击鼠标时添加它,然后在单击外部时将其删除。尝试右键单击它,然后在DOM(元素控制台选项卡)中搜索该菜单元素。