我有一个网站。

它有两页。

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?

最佳答案

由于您已成功在控制台中获得测试消息,因此我猜测上下文菜单在那里,仅不可见。

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

关于javascript - 单击人民币时,jsTree上下文菜单未显示在树节点上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41897177/

10-13 02:55