gpt4 book ai didi

javascript - jstree 获取已检查和未检查的节点

转载 作者:行者123 更新时间:2023-11-29 14:59:03 24 4
gpt4 key购买 nike

我想从我的 jstree 中获取 2 个单独数组中的已检查节点和未检查节点。

我看过 .get_checked.get_unchecked 函数,但它们会向我返回当前已检查和未检查的所有节点。 (即,如果一个节点未被选中,而我没有取消选中它,那么我仍然使用 .get_unchecked 获取它。我想防止这种情况发生)。我也准备好对 api 进行重大更改。有什么方向吗?

我可以获取复选框的更改事件吗?我也尝试过 change_state 但它只适用于一个被点击的节点。

最佳答案

据我所知,如果不重写 jstree 的复选框插件,几乎不可能处理复选框的单个事件,因为它们只是在每个选中/取消选中事件上重绘所单击文件夹的所有父项和子项。

这里是简单的 demo :

一切都为我工作,

HTML

<div id="demo1" class="demo">
    <ul>
        <li id="phtml_1">
            <a href="#">Root node 1</a>
            <ul>
                <li id="phtml_2" class="jstree-checked">
                    <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>
             <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>
    </ul>
</div>​

JS

$(function() {
    var tree = $("#demo1").jstree({
        "plugins": ["themes", "html_data", "checkbox", "sort", "ui"]
    });
    tree.bind("open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree", function(e) {
        console.log("Event", e);
        console.log('Cheked:', tree.jstree('get_checked'));
        console.log('Uncheked:', tree.jstree('get_unchecked'));
    });
});​

关于javascript - jstree 获取已检查和未检查的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12928779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com