我有一个网站。
它有两页。
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可能是此
的根答案 0 :(得分:2)
由于您在控制台中成功获取了测试消息,我的猜测是上下文菜单在那里,只是不可见。
上下文菜单将是ul
元素,其中包含类vakata-context jstree-contextmenu jstree-default-contextmenu
。在节点上右键单击鼠标时添加它,然后在单击外部时将其删除。尝试右键单击它,然后在DOM(元素控制台选项卡)中搜索该菜单元素。