Попытка получить список проверенных элементов на change_state в jstree - PullRequest
2 голосов
/ 03 марта 2012

Используя jsTree (pre1.0_fix_1), я хотел бы получить список id для всех отмеченных элементов (или, лучше, JSON-объект с id И текстом каждого проверенный пункт). Затем я сделаю вызов Ajax с этим. Кроме того, это должно происходить каждый раз, когда происходит изменение состояния, когда что-то проверяется или не проверяется.

Это то, что у меня сейчас есть:

$(function(){

  n = $('#colors').jstree({
    "plugins": ["themes", "html_data", "checkbox"]
  }).bind("change_state.jstree", function(e, data){
  console.log($('#colors').jstree('get_selected').attr('id'));
  });
});

Это просто возвращает ' colors ' из контейнера id: <div id="colors">. Я ловил рыбу вокруг объекта data, но не нашел его там (возможно, я пропустил это?)

1 Ответ

3 голосов
/ 04 марта 2012

Чтобы получить JSON проверенных узлов, вы должны использовать get_checked, а не get_selected.Попробуйте это:

    var checked = $("#colors").jstree("get_checked",null,true);
    var checked_json = [];
    $(checked).each(function (i,node) {
        var id = $(node).attr("id");
        var text = $(node).attr("text");
        var node_json = { 
            "id" : id, 
            "text" : text 
        };
        checked_json.push(node_json);
    });

После этого checked_json будет содержать массив текстовых объектов id +, которые вы можете отправить на сервер.

...