Javascript FancyTree: можно ли различить выбор узла и действие по его расширению.
Я хотел бы добиться следующего поведения с моим деревом.
Когда кто-то выбирает значок угла, который сигнализирует о том, что узел расширяемый, я бы хотел, чтобы узел расширялся и только расширялся (без выбора). Между тем, когда кто-то выбирает узел (то есть один щелчок по тексту узла), я хочу, чтобы выполнялся определенный обработчик, который я сделал, и расширение узла не выполнялось.
Это потому, что в моем приложении, когда пользователь выбирает / одним щелчком мыши на элемент дерева, этот элемент добавляется в другой список в HTML. Скажем, список выбранного элемента.
Итак, другими словами:
Когда кто-то щелкает по тексту узла, узел вообще не должен расширяться, и должен выполняться только мой обработчик.
В то же время, если кто-то одним щелчком мыши, значок в левом углу узла (который фактически сигнализирует о том, что узел расширяемый), я хотел бы, чтобы он расширялся только и ничего больше.
Короче говоря, можно ли различить выбор узла и действие по его расширению.
1 ответ
Настройка clickFolderMode
в 1
Вы получите то поведение, которое вам нужно:
Когда кто-то выбирает значок угла, который сигнализирует о том, что узел расширяемый, я бы хотел, чтобы узел расширялся и только расширялся (без выбора). Между тем, когда кто-то выбирает узел (то есть один щелчок по тексту узла), я хочу, чтобы выполнялся определенный обработчик, который я сделал, и расширение узла не выполнялось.
$("#tree").fancytree({
clickFolderMode: 1 // 1:activate, 2:expand, 3:activate and expand
});
После этого вы сможете использовать onSelect
а также onExpand
обработчики событий, чтобы делать то, что вам нужно, в зависимости от того, какое действие выполнил пользователь.