Добрый день!
Задача: Необходимо дерево с чекбоксами, для использования в форме, соответственно, нужно знать выделенные чекбоксы.
Подскажите, пожалуйста, почему не работает опция
real_checkboxes?
Нужно, чтобы к нодам автоматически добавлялись скрытые чекбоксы.
j(treeName).jstree({
"plugins": ["themes", "ui", "checkbox"],
"checkbox": {
"real_checkboxes": true
}
})
Двухуровневое дерево такого типа
Код:
|
x родитель1элемент 1 элемент 2 ... x родитель2элемент 1 ... x родитель3элемент 1 элемент 2 ... |
<ul>
<li id="..."><a href="#">имя</a>
<ul>
<li id="..."><a href="#">имя</a></li>
<li id="..."><a href="#">имя</a></li>
</ul>
</li>
<li id="..."><a href="#">имя</a>
<ul>
<li id="..."><a href="#">имя</a></li>
</ul>
</li>
<li id="..."><a href="#">имя</a>
<ul>
<li id="..."><a href="#">имя</a></li>
<li id="..."><a href="#">имя</a></li>
</ul>
</li>
</ul>
id - уникален для каждого li
Дерево создается, но скрытых чекбоксов нет.
И еще вопрос - как получить все отмеченные чекбоксы только конкретного уровня, например, второго?
Я пытаюсь собирать без real_checkboxes выделенные ноды в массив (либо добавлять вручную скрытый input checkbox - то, что должно происходить при включенной опции real_checkboxes) по событию
.bind('select_node.jstree', function (e, data) {...}
но как исключить первый уровень? Плюс событие select_node возникает для каждого выделения два раза:
- Если выделяется элемент первого уровня, то 1 раз на этот элемент, и второй - на все вложенные в него (независимо от их количества).
- Если выделяется элемент второго уровня - 1 раз на него, 2 раз на его родителя в 1 уровне.
Аналогично и для deselect.
Есть функция для получения всех выделенных узлов:
.get_checked ( context, get_all )
Как правильно указывать context для получения всех узлов или конкретного уровня? В оф. документации сказано: это может быть узел DOM, Jquery узел или селектор, указывающий на элемент в дереве.
Т.е. для получения всех узлов нужно указать что-то вроде
j(treeName).jstree("get_checked",что здесь???,true);
?
Есть еще функция "get_all_checked".
Заранее спасибо за помощь и подсказки.
UPD: И еще важный вопрос -
какую версию лучше использовать? Уже путаюсь, в последней стабильной версии 1.0 в lib идет jquery 1.5, в предыдущих 1.9.1... Использую, например, v2.0.0-alpha - дерево строится, но очевидно, что документация на сайте устарела, а с предыдущими дерево вообще не строится (пробую и jquery из их вложений, и 1.9, и 1.10). Получается каша из версий и документации, прошу Вашей помощи
![](https://javascript.ru/forum/images/smilies/smile.gif)