Ошибка плагина флажка jsTree - PullRequest
1 голос
/ 22 октября 2010

У меня есть jsTree с флажками, которые отображаются просто отлично.Я могу открывать и закрывать узлы, устанавливать и снимать флажки и т. Д.

Проблема возникает, когда я пытаюсь получить все проверенные узлы.Ниже я перечисляю все способы, которые я пробовал, наряду с сообщениями об ошибках, которые я получаю при попытке каждого из них.

$.tree.plugin.checkbox.get_checked($.tree.reference("#smuDomains"));
$.tree is undefined

$.jstree.plugin.checkbox.get_checked($.jstree.reference("#smuDomains"));
$.jstree.plugin.checkbox is undefined

$.tree.plugins.checkbox.get_checked($.tree.reference("#smuDomains"));
$.tree is undefined

$.jstree.plugins.checkbox.get_checked($.jstree.reference("#smuDomains"));
$.jstree.plugins is undefined

Второй ($ .jstree.plugin.checkbox), кажется, становится наиболее близкимк работе, но это не похоже на ссылку "флажок".Должно ли это быть check_box или что-то другое?

Это код, который я использую для инициализации дерева:

$.jstree._themes = "../script/css/jstree/themes/";
$("#smuDomains").jstree({
    core : {}, 
    themes : {
        theme : "classic",
        dots : true,
        icons : true, 
        url : false
    },  
    json_data : {
        ajax : {
            url : "[the url]",
            datatype : "json",
            data : function(n) {
                return { id : n.attr ? n.attr("id") : 0 };
            },
            plugins : [ "themes", "json_data", "ui", "checkbox"]
        }); 
    });

Ответы [ 4 ]

3 голосов
/ 17 декабря 2010

Я использую этот код, чтобы установить флажки перед отправкой формы:

jQuery('#myForm').submit(function() {
    jQuery('#mytree .jstree-checked').each(function () {
        var node = jQuery(this);
        var id = node.attr('id');
        var node_parent = node.parents('li:eq(0)');
        var pid = node_parent.attr('id');

        jQuery("<input>").attr("type", "hidden").attr("name", "treenode").val(id).appendTo("#mytree");
    });
});
1 голос
/ 06 сентября 2011

$ ( '# дерево'). Jstree ( 'get_checked')

0 голосов
/ 21 сентября 2012

Вы можете:

checked_nodes = $ ("# smuDomains"). Jstree ("get_checked", null, true);

$. Каждый (check_nodes, function (k, n) {

node = $(n);
alert("name: "+node.attr("name")); //show each one of the nodes names

});

если вы хотите только выбранные узлы, вы можете иметь:

selected_nodes = $ ("# smuDomains"). Jstree ("get_selected", null, true);

надеюсь, это поможет

0 голосов
/ 28 октября 2010

одна из проблем с get_checked заключается в том, что он остановится на проверенных родительских узлах.

Мы закончили с чем-то вроде этого:

$ ('# idOfDivContainedTree .jstree-checked')

Существует риск того, что это не будет работать с будущими версиями jsTree, поскольку это зависит от реализации

...