Функция JsTree .get_checked не работает ... помогает ....? - PullRequest
2 голосов
/ 12 октября 2011

Я использую плагин JSTree и флажок, но мне не удалось выбрать выбранные (проверенные) узлы, я прочитал в документации по JSTree о событии .get_checked, но не знаю, как его реализовать, ниместо для его размещения, если оно находится внутри функции, в которую загружаются данные или нет, также я не понимаю, когда происходит событие, т.е. я не знаю, выполняется ли событие каждый раз, когда проверяется узел, или имеется массив, которыйзаполнен каждый раз, когда узел проверяется ... пожалуйста, помогите мне ... правда я потерялся и не знаю, как это сделать.

Вот мой код Jscript, загрузка данных в порядке, нофункция get_checked не работает ...

$(function () {
    $("#demo2")
        .jstree({
             plugins: ["themes", "json_data", "checkbox", "crrm"],
                   "json_data": {
                    "ajax": {
                        "type": "POST",
                        "url": "/Ubicacion/Arbol/",
                        "data": function (n) { return { id: n.attr ? n.attr("id") : 0} }
                }
            }

            })

        .bind("check_node.jstree", function (event, data) {
            alert($.jstree._focused().get_checked().attr('id'));
        })

    });

Поиск по интернету Я нашел "среднее" решение:

 $(function () {
        $("#demo2")
        .jstree({

            plugins: ["themes", "json_data", "checkbox", "crrm"],
            "json_data": {
                "ajax": {
                    "type": "POST",
                    "url": "/Ubicacion/GetTreeview/",
                    "data": function (n) { return { id: n.attr ? n.attr("id") : 0} }
                }
            }
        }).bind('check_node.jstree', function (e, data) {
            alert("Nodo elegido " + data.rslt.obj.attr("id"));
        });
    });

Я добавил следующие строки:

.bind('check_node.jstree', function (e, data) {
                alert("Nodo elegido " + data.rslt.obj.attr("id"));
            });

и теперь у меня был только родительский узел, дети не могут быть собраны ... любая идея .. ??

пожалуйста ... помогите мне ... !!

1 Ответ

3 голосов
/ 13 октября 2011

Это то, как я вызываю / получаю все проверенные узлы

checked = $("#tree").jstree("get_checked",null,true) ;

Хорошо работает для меня.Мне кажется, что «проблема» будет, когда и как вы позвоните .get_checked

Не могли бы вы сказать нам, чего вы хотите достичь?Лучше всего, если вы можете предоставить образец на jsfiddle.net

Обновление

Рабочий образец на jsfiddle

1) как связать действие с флажком

$("#jstree").bind('check_node.jstree', function(e, data) {
    $("#list").append('<BR>clicked and ' + node_is_check(data));
});

2) как проверить, установлен ли флажок, где объект = данные сверху

object.inst.is_checked(object.rslt.obj
...