我有一个网站。
它有两页。
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?
最佳答案
由于您已成功在控制台中获得测试消息,因此我猜测上下文菜单在那里,仅不可见。
上下文菜单将是类别为ul
的vakata-context jstree-contextmenu jstree-default-contextmenu
元素。在节点上单击鼠标右键时将添加它,然后在节点外部单击时将其删除。尝试右键单击它,然后在DOM(“元素控制台”选项卡)中搜索该菜单元素。
关于javascript - 单击人民币时,jsTree上下文菜单未显示在树节点上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41897177/