jsTree 上下文菜单问题
这应该是一个非常简单的问题,但我似乎无法在任何地方找到答案。我最近(就像今天一样)开始使用 jsTree,并且刚刚设置了我的第一棵树。我创建了一个仅包含静态文本的无序列表:
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
我执行 jsTree 的代码如下所示:
$(document).ready(function () {
$("#demo1").bind("select_node.jstree",
function(event, data) {
//DO SOMETHING WHEN A NODE IS CLICKED
}).jstree();
});
然后我尝试添加上下文菜单。使用以下内容:
$(document).ready(function () {
$("#demo1").bind("select_node.jstree",
function(event, data) {
//DO SOMETHING WHEN A NODE IS CLICKED
}).jstree({plugins: ["contextmenu"], contextmenu: {items: customMenu}});
});
customMenu 是一个返回对象的简单函数。
当我执行第一个代码时,我得到了 jsTree 并且它折叠并展开。当我执行第二个时,jsTree 所在的区域显示“正在加载...”,仅此而已。如果我右键单击该单词,我就会看到菜单。
有什么建议吗?
如果,当我将其指向函数 customMenu 时,我添加 (),那么我会得到一个非常奇怪的菜单,其中包含: -创造 -重命名 -删除 -编辑 - 切 - 复制 - 粘贴 --添加组 --删除
我不确定我知道发生了什么。我将函数名称更改为不同的名称,以确保我没有获得 jQuery 或 jsTree 函数,但我仍然遇到奇怪的行为。有什么建议吗?
This should be a really simple question, but I can't seem to find the answer anywhere. I've recently (like today) began using jsTree and I just got my first tree set up. I created an unordered list of just static text:
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
My code to do a jsTree looks like this:
$(document).ready(function () {
$("#demo1").bind("select_node.jstree",
function(event, data) {
//DO SOMETHING WHEN A NODE IS CLICKED
}).jstree();
});
Then I try to add a context menu. Using the following:
$(document).ready(function () {
$("#demo1").bind("select_node.jstree",
function(event, data) {
//DO SOMETHING WHEN A NODE IS CLICKED
}).jstree({plugins: ["contextmenu"], contextmenu: {items: customMenu}});
});
customMenu is a simple function that returns an object.
When I execute the first code, I get my jsTree and it collapses and expands. When I execute the second one, the area where the jsTree is says "Loading..." and that is all. If I right-click that word, I DO get the menu.
Any suggestions?
if, when I point it to the function customMenu, I add the (), then I get a really strange menu that has:
-create
-rename
-delete
-edit
--cut
--copy
--paste
--Add Group
--delete
I'm not sure I know what's going on. I changed the function name to something different to be sure I wasn't getting a jQuery or jsTree function, but I still get the strange behavior. Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
建议不要自己处理上下文菜单的创建,而是让 jstree 为您做这件事。
因此,在初始化代码中,您可以编写:
这足以拥有一个功能性上下文菜单。
it would be suggested not to handle the contextmenu creation yourself, but rather let jstree do that for you.
so in the initialization code you would write:
and that would be sufficient to have a functional contextmenu.
不要将 on select 方法绑定到 jstree。相反,创建新的菜单项,如下面的代码所示。
这应该可以正常工作。
这应该有效。
如果您想删除默认菜单项,请将它们设置为 false
dont bind the on select method to jstree. Instead create your new menu items as in the code below.
This should work fine.
This should work.
And if you want to remove the default menu items then set them to false