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

Implementing different leaf and folder context menus for YUI treeview

本文关键字:叶子 文件夹 上下文 菜单 YUI 视图 实现      更新时间:2023-09-26

我实现了一个带有上下文菜单的树视图。我想有两个单独的上下文菜单与不同的选项,一个文件夹和另一个叶子。

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

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

我希望子文件夹也有菜单。文件夹和子文件夹都有"folder"类。我还尝试在oFolderContextMenu定义中设置触发器,但最终出现了同样的问题。

你可以收集所有你想要用作触发器的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 documentation - http://www.w3schools.com/jsref/jsref_concat_array.asp