jsTree + checkbox
Добрый день. Кто-нибудь использует jsTree с плагином checkbox, там опция real_checkboxes вообще работает или нет?
Я вот так задал конфигурацию: function init() { $("#categories_tree").jstree({ "core": {"initially_open": [1]}, "plugins": ["themes", "json_data", "checkbox"], "json_data": { "data": [{ "data": "Categories", "attr": {"id": 1}, "state": "closed" }], "ajax": { "url": "ajax_categories", "data": function (n) { return {"id": n.attr ? n.attr("id") : -1} } } }, "themes": { "theme": "classic" }, "checkbox": { "real_checkboxes": true } }); } Дерево рисуется, но в $_POST ничего не приходит, да и через firebug видно, что для чекбоксов используются тэги <ins> Я что-то не так делаю или эта фича еще не реализована в плагине? Спасибо. |
С этой проблемой разобрался. Помог следующий код:
$("#form").submit(function () { $("#categories_tree").jstree("get_checked").each(function() { var checkedId = this.id; $("#form").append('<input name="categories[]" value="'+checkedId+'" type="hidden">'); }); }); Но выползла другая проблема. Надо, чтобы, по мере выбора пунктов в категориях менялась аяксом отображаемая информация на сайте (список сущностей). Я это решил с помощью такого: function init() { $("#categories_tree").bind("change_state.jstree", function (event, data) { getData(); }).jstree({ "core": {"initially_open": [1]}, "plugins": ["themes", "json_data", "checkbox"], "json_data": { "data": [{ "data": "Categories", "attr": {"id": 1}, "state": "closed" }], "ajax": { "url": "main/ajax_categories", "data": function (n) { return {"id": n.attr ? n.attr("id") : -1} } } }, "themes": { "theme": "classic" } }); } function getData(page) { var catIds = ''; $("#categories_tree").jstree("get_checked").each(function() { catIds += this.id+','; }); $.get( 'main/ajax', { page: page, catids: catIds }, showData ); } Все хорошо, однако, возникает один ньюанс. В дереве категорий могут быть заведомо чекнутые пункты, при первой загрузке страницы они игнорируются (вероятно, дерево jstree еще не успевает полностью загрузиться). Как повесить колбэк на событие полной загрузки дерева? Пробовал на loaded.jstree вешать - оно срабатывает при каждом раскрытии ветки (когда идет ajax-подгрузка данных), но, вероятно, до того, как данные будут загружены, потому что опять же чекнутые пункты не отлавливаются :( Помогите пожалуйста разобраться с проблемой. |
Неужели ж никто не решал подобных задач тут?
|
Решил пока проблему с помощью setTimeout выставив 5 секунд на раздупление дерева... но понимаю, что такое решение некузявое
|
Jstree + real_checkboxes_names + Opera ?
Доброго времени суток!
Недавно стал работать с с jstree, хорошая штука. После написания проекта и тестирования пришел к такому неочень приятному моменту: "real_checkboxes_names" :function (n) { return (["id[]", n[0].id]) } Не работает в Opera, всегда значение n[0].id возвращает undefinded, тогда как в IE 6 и выше - работает без нареканий. Собственно встал вопрос: как лечить и кто-то сталкивался с такой болезнью? Заранее спасибо. |
Часовой пояс GMT +3, время: 15:38. |