我使用上下文菜单实现了树视图。我想有两个带有不同选项的sepearate上下文菜单,一个用于文件夹,另一个用于树叶。
我的树是从嵌套的html树构建的。由于我使用mako模板构建此树,因此我知道哪些节点是树和文件夹。每个节点都是<li class="folder">
或`。
我目前正在使用oFolderContextMenu.cfg.setProperty("trigger", YAHOO.util.Dom.getElementsByClassName("folder"));
,但问题是只有顶级文件夹才有上下文菜单。
我希望子文件夹也有菜单。文件夹和子文件夹都具有“文件夹”类。我也尝试在oFolderContextMenu定义中设置触发器,但最终遇到了同样的问题。
答案 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