Javascript jsTree复选框检查_节点不工作

Javascript jsTree复选框检查_节点不工作,javascript,jquery,jstree,Javascript,Jquery,Jstree,jstree v1.0 我刚刚对复选框示例进行了修改: 我的目标是: 当检查任何节点时,我希望所有父节点都被检查,默认行为是不正常的,因为这是部分选中的,对我不好 根据提示和文档,我扩展了原始示例,但我发现check_node方法不起作用。我没有注意到任何影响 欢迎任何提示或建议 <div id="demo1" class="demo"> <ul> <li id="phtml_1"> <a href="#"

jstree v1.0

我刚刚对复选框示例进行了修改:

我的目标是: 当检查任何节点时,我希望所有父节点都被检查,默认行为是不正常的,因为这是部分选中的,对我不好

根据提示和文档,我扩展了原始示例,但我发现check_node方法不起作用。我没有注意到任何影响

欢迎任何提示或建议

<div id="demo1" class="demo">
    <ul>
        <li id="phtml_1">
            <a href="#">Root node 1</a>
            <ul>
                <li id="phtml_2" >
                    <a href="#">Child node 1</a>
                </li>
                <li id="phtml_3">
                    <a href="#">A Child node 2</a>
                </li>
            </ul>
        </li>
        <li id="phtml_4">
            <a href="#">Root node 2</a>
        </li>
        <li id="phtml_5">
            <a href="#">Root node 1</a>
            <ul>
                <li id="phtml_51">
                    <a href="#">Child node 1</a>
                </li>
                <li id="phtml_52">
                    <a href="#">A Child node 2</a>
                </li>
            </ul>
        </li>
        <li id="phtml_6">
            <a href="#">Root node 1</a>
            <ul>
                <li id="phtml_61">
                    <a href="#">Child node 1</a>
                </li>
                <li id="phtml_62">
                    <a href="#">A Child node 2</a>
                </li>
            </ul>
        </li>
    </ul>
</div>
<script type="text/javascript" class="source">
$(function () {
    var x = $("#demo1");
    $(x).jstree({
        "checkbox" :{
            real_checkboxes:false,
            override_ui:true,
            two_state:false,    
        },
        "plugins" : [ "themes", "html_data", "checkbox", "ui" ]
    }).bind('check_node.jstree', function (e, data) { 
        console.log('check_node.jstree ----------------------------------------------');
        console.log(e);
        var all_selected = $(x).jstree('get_checked')
        console.log('all_selected='+all_selected);
        for(var i=0;i<all_selected.length;i++){
            var paths = $(x).jstree('get_path', all_selected[i], true);
            console.log('  paths='+paths);
            for(var j=0; j< paths.length;j++){
                console.log('    checking node (not working)='+paths[j]);
                $(x).jstree('check_node',paths[j]);
            }
        }
    });
    console.log('programaticcaly checking last parent node (not working)')
    //$(x).jstree('check_node',$('li#phtml_6'));
    $.jstree._reference("#demo1").check_node('li#phtml_6');
});
</script>
试试这个

.bind('check_node.jstree', function(e, data) {
    var currentNode = data.rslt.obj.attr("id");
    var parentNode = data.inst._get_parent(data.rslt.obj).attr("id");
   jQuery.jstree._reference($("#tree")).check_node('#'+parentNode);
 });
如果您想查看示例,请参考此

.bind('check_node.jstree', function(e, data) {
    var currentNode = data.rslt.obj.attr("id");
    var parentNode = data.inst._get_parent(data.rslt.obj).attr("id");
   jQuery.jstree._reference($("#tree")).check_node('#'+parentNode);
 });
如果您想要示例,请参考此

,只需包含一个简单的单击功能,如下所示

$(x).on("click", function () {
    $(x).jstree("select_all");
});
只需包含一个简单的点击功能,如下所示

$(x).on("click", function () {
    $(x).jstree("select_all");
});

以下代码适用于我

var contact_list = $('#compose_contact_list'); contact_list.jstree({ "checkbox" : { "keep_selected_style" : false, "tie_selection" : false }, "plugins" : [ "checkbox" ] }); contact_list.on("check_node.jstree", function(event, data){ alert(data.node.text); });
以下代码适用于我

var contact_list = $('#compose_contact_list'); contact_list.jstree({ "checkbox" : { "keep_selected_style" : false, "tie_selection" : false }, "plugins" : [ "checkbox" ] }); contact_list.on("check_node.jstree", function(event, data){ alert(data.node.text); }); jstree-3.2.1

/**
 * check tree node
 * treeid:tree id
 * nodeids:node id, id or id array
 */
function checkTreeNodes (treeid, nodeids) {
    // Tree
    var tree = $("#" + treeid);
    // IE
    tree.jstree(true).check_node(nodeids);
    // Chrome or Firefox
    tree.on("loaded.jstree", function (e, data) {
        tree.jstree(true).check_node(nodeids);
    }).jstree();
}
jstree-3.2.1

/**
 * check tree node
 * treeid:tree id
 * nodeids:node id, id or id array
 */
function checkTreeNodes (treeid, nodeids) {
    // Tree
    var tree = $("#" + treeid);
    // IE
    tree.jstree(true).check_node(nodeids);
    // Chrome or Firefox
    tree.on("loaded.jstree", function (e, data) {
        tree.jstree(true).check_node(nodeids);
    }).jstree();
}