Событие и флажок JSTree select_node - PullRequest
1 голос
/ 05 января 2011

У меня есть jstree, в котором я использовал событие select_node для переключения узлов (развернуть) и поэтому удалил стрелки переключения в дереве, так как они выглядят ужасно, и мне они не нужны.

Теперь я добавил плагин checkbox для использования в дереве, но обнаружил, что событие select_node отключено, когда плагин активен.

Как бы я переключал свои узлы с активным плагином checkbox, без повторного добавления уродливых стрелок переключения? Я мог бы сделать это в событии check / uncheck, но я не хочу ставить / снимать флажок каждый раз, когда расширяю узел.

Ответы [ 3 ]

2 голосов
/ 16 января 2011

Скажем, у вас есть дерево примеров, как в http://www.jstree.com/documentation/checkbox, с Стрелки убраны. Вы не можете выполнить как выбор флажка, так и переключение ветвей, при событии щелчка, не прерывая взаимодействие с пользовательским интерфейсом. Но, поскольку неконечные узлы не несут данные модели (их флажки служат только как функция select-all / deselect-all), вы можете удалить флажки от них, переопределяя события щелчка над ними как "toggle_node", в то время как оставляя остальное нетронутым.

Вы можете снять флажки на неконечных узлах li и сделать для них событие click переключать листья. Это позволит достичь желаемого поведения, но удалит флажок «выбрать все / отменить все» для неконечных узлов.

Просто добавьте строки, помеченные знаком «+», на странице примера.

    $("#demo1").jstree({ 
       "plugins" : [ "themes", "html_data", "checkbox" ]
    });

+    $("#demo1 li").not(".jstree-leaf").each(function() {
+       $("a ins.jstree-checkbox", this).first().hide();
+       $("a", this).first().click(function(event) {
+          $("#demo1").jstree("toggle_node", "#"+$(this).parent().attr('id'));
+          event.stopPropagation();
+          event.preventDefault();
+       });
+    });
2 голосов
/ 17 января 2011

Последняя версия jstree теперь позволяет как проверять, так и выбирать узел по отдельности, щелкая по флажку или названию узла.

2 голосов
/ 05 января 2011

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

...