为YUI treeview实现不同的叶子和文件夹上下文菜单

时间:2011-12-15 19:45:13

标签: javascript treeview yui

我使用上下文菜单实现了树视图。我想有两个带有不同选项的sepearate上下文菜单,一个用于文件夹,另一个用于树叶。

我的树是从嵌套的html树构建的。由于我使用mako模板构建此树,因此我知道哪些节点是树和文件夹。每个节点都是<li class="folder">或`。

我目前正在使用oFolderContextMenu.cfg.setProperty("trigger", YAHOO.util.Dom.getElementsByClassName("folder"));,但问题是只有顶级文件夹才有上下文菜单。

我希望子文件夹也有菜单。文件夹和子文件夹都具有“文件夹”类。我也尝试在oFolderContextMenu定义中设置触发器,但最终遇到了同样的问题。

1 个答案:

答案 0 :(得分:1)

您可以将要用作触发器的所有DOM元素收集到一个数组中,然后将它们传递给配置。使用本机函数“concat”,您可以将一个或多个阵列合并为一个。

示例:

var triggerNodes, foldernodes, folder;
foldernodes = YAHOO.util.Dom.getElementsByClassName("foldernode");
folder = YAHOO.util.Dom.getElementsByClassName("folder");
triggerNodes = foldernodes.concat(folder);

oFolderContextMenu.cfg.setProperty("trigger", triggerNodes);

concat文档 - http://www.w3schools.com/jsref/jsref_concat_array.asp