Как зафиксировать событие щелчка флажка?

Я использую jstree и пытаюсь зафиксировать событие изменения состояния флажка. Как получить текущее выбранное состояние флажка и его идентификатор списка?

Пример, который я нашел здесь: Захват событий флажка Jquery Jstree работает, но я не могу понять как получить состояние проверки узла. Если есть лучший или более простой способ, я открыт для других предложений.

$("#demo1").bind("change_state.jstree", function (e, d) {
        if ((d.args[0].tagName == "A" || d.args[0].tagName == "INS") &&
            (d.inst.data.core.refreshing != true && d.inst.data.core.refreshing != "undefined")) 
        {
            //if a checkbox or it's text was clicked, 
            //and this is not due to a refresh or initial load, run this code . . .
            alert("list id: " +d.rslt.attr("id"));
            alert("is item checked?" +"***TODO***"); 
        }
    });

Спасибо.

** РЕДАКТИРОВАТЬ: я сделал свой вопрос более ясным, чтобы избежать путаницы по поводу объединения плагинов (это не то, чем я занимаюсь). Я включил флажки дерева в jstree. **


person http203    schedule 26.08.2011    source источник
comment
ты нашел решение? я столкнулся с той же проблемой. пожалуйста, помогите.   -  person Shibankar    schedule 07.01.2015


Ответы (1)


Не решение, а обходной путь!!! Я нашел этот пост в поисках решения аналогичной проблемы, поиграв с различными сценариями, решил не использовать

real_checkboxes

вариант. Вместо этого я добавил ряд собственных скрытых флажков и изменил ваш скрипт, чтобы установить проверенный статус скрытых флажков, которые затем отправляются обратно на сервер (MVC3) в форме. Затем я могу использовать идентификатор узла дерева LI, чтобы установить проверенный статус моих флажков.

if ((d.args[0].tagName == "A" || d.args[0].tagName == "INS") &&
        (d.inst.data.core.refreshing != true && d.inst.data.core.refreshing != "undefined")) {
            //if a checkbox or it's text was clicked, 
            //and this is not due to a refresh or initial load, run this code . . .
            var id = d.rslt.attr("id"); 
            var checked = $("#" + id + ".jstree-checked").length!=0; // use the length!=0 to get a bool of the checked status
            $("#log").append("list id: " + id);
            $("#log").append("is item checked ? " + checked);
            $("#log").append("<br/>");


        }
person fielde    schedule 02.09.2011