Javascript FancyTree: можно ли различить выбор узла и действие по его расширению.

Я хотел бы добиться следующего поведения с моим деревом.

Когда кто-то выбирает значок угла, который сигнализирует о том, что узел расширяемый, я бы хотел, чтобы узел расширялся и только расширялся (без выбора). Между тем, когда кто-то выбирает узел (то есть один щелчок по тексту узла), я хочу, чтобы выполнялся определенный обработчик, который я сделал, и расширение узла не выполнялось.

Это потому, что в моем приложении, когда пользователь выбирает / одним щелчком мыши на элемент дерева, этот элемент добавляется в другой список в HTML. Скажем, список выбранного элемента.

Итак, другими словами:

  • Когда кто-то щелкает по тексту узла, узел вообще не должен расширяться, и должен выполняться только мой обработчик.

  • В то же время, если кто-то одним щелчком мыши, значок в левом углу узла (который фактически сигнализирует о том, что узел расширяемый), я хотел бы, чтобы он расширялся только и ничего больше.

Короче говоря, можно ли различить выбор узла и действие по его расширению.

1 ответ

Решение

Настройка clickFolderMode в 1 Вы получите то поведение, которое вам нужно:

Когда кто-то выбирает значок угла, который сигнализирует о том, что узел расширяемый, я бы хотел, чтобы узел расширялся и только расширялся (без выбора). Между тем, когда кто-то выбирает узел (то есть один щелчок по тексту узла), я хочу, чтобы выполнялся определенный обработчик, который я сделал, и расширение узла не выполнялось.

$("#tree").fancytree({
    clickFolderMode: 1 // 1:activate, 2:expand, 3:activate and expand
});

После этого вы сможете использовать onSelect а также onExpand обработчики событий, чтобы делать то, что вам нужно, в зависимости от того, какое действие выполнил пользователь.

Другие вопросы по тегам