Реализация различных листовых и папочных контекстных меню для дерева просмотра YUI - PullRequest
1 голос
/ 15 декабря 2011

Я реализовал древовидную структуру с контекстными меню. Я хотел бы иметь два отдельных контекстных меню с разными параметрами: одно для папок, а другое для листьев.

Мое дерево построено из вложенного дерева HTML. Поскольку я строю это дерево с помощью шаблона mako, я знаю, какие узлы являются деревьями и папками. Каждый узел является либо <li class="folder">, либо `.

В настоящее время я использую oFolderContextMenu.cfg.setProperty("trigger", YAHOO.util.Dom.getElementsByClassName("folder"));, но проблема в том, что только папки верхнего уровня имеют контекстные меню.

Я бы хотел, чтобы подпапки тоже имели меню. Папки и подпапки имеют класс «папка». Я также попытался установить триггер в определении oFolderContextMenu, но в итоге столкнулся с той же проблемой.

1 Ответ

1 голос
/ 16 декабря 2011

Вы можете собрать все свои элементы 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

...