Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.10.2013, 12:00
Интересующийся
Отправить личное сообщение для mdlv Посмотреть профиль Найти все сообщения от mdlv
 
Регистрация: 14.05.2012
Сообщений: 16

Как скомпоновать с формой чекбоксы в JsTree?
Добрый день!

Задача: Необходимо дерево с чекбоксами, для использования в форме, соответственно, нужно знать выделенные чекбоксы.

Подскажите, пожалуйста, почему не работает опция 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). Получается каша из версий и документации, прошу Вашей помощи

Последний раз редактировалось mdlv, 09.10.2013 в 13:07.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
как мне сдеать чтобы форма работала с формой? nemo Серверные языки и технологии 2 29.11.2009 16:21
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20