Скажем, у вас есть дерево примеров, как в 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();
+ });
+ });