javascript - Jquery Treeview 切换问题

标签 javascript jquery treeview

我正在测试Jquery Treeview并发现一个我无法弄清楚的错误。

Fiddle here

似乎发生的情况是第一层、第二层嵌套上的切换变得困惑。

要测试...转到 fiddle ,单击全部折叠,然后单击全部展开,您将看到未正确展开的节点,但它是 + 图标变成 - 图标,所以至少是正确的。

这是一个已知的错误吗?他们的演示中也发生了这种情况。

我知道有更多最新的插件声称可以做同样的事情,但我喜欢它的简单性(假设我可以解决这个错误!)

我很确定错误存在于切换器中,并且猜测它没有正确递归:

// handle toggle event
        function toggler() {
            $(this)
                .parent()
                // swap classes for hitarea
                .find(">.hitarea")
                    .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
                    .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
                .end()
                // swap classes for parent li
                .swapClass( CLASSES.collapsable, CLASSES.expandable )
                .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
                // find child lists
                .find( ">ul" )
                // toggle them
                .heightToggle( settings.animated, settings.toggle );
            if ( settings.unique ) {
                $(this).parent()
                    .siblings()
                    // swap classes for hitarea
                    .find(">.hitarea")
                        .replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
                        .replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
                    .end()
                    .replaceClass( CLASSES.collapsable, CLASSES.expandable )
                    .replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
                    .find( ">ul" )
                    .heightHide( settings.animated, settings.toggle );
            }
        }
        this.data("toggler", toggler);

最佳答案

只需检查链接 http://www.dynamicdrive.com/dynamicindex1/treeview/demo/index.html 。这里他们没有使用cookie来保存折叠和展开数据。这就是为什么它工作完美。如果我们使用cookie,那么它们的折叠和展开是不一致的。

只需更改 $(".treeview").treeview({ 控制:“#treecontrol” }); 与

$(".treeview").treeview({ 控制:“#treecontrol”, 动画:“快” });

你看,它工作得很好

关于javascript - Jquery Treeview 切换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19444732/

相关文章:

javascript - 当 iPad 中的方向从横向模式变为纵向模式时页面缩小

javascript - 我可以使用 $.each() 和 $.ajax() 来查询 api 吗?

c# - 分隔线拖放树节点 c# WinForms

javascript - $.ajax JSON 未在完成时传递值

javascript - 如何手动触发 jQuery drag() 函数?像 $(element).trigger ('drag' );

javascript - 什么会导致浏览器控制台出现 "jsf is not defined"错误

winapi - 检查 Win32 TreeView 项会自动检查所有子项

c# - TreeView 的父节点之间的空间

javascript - 高阶函数,Flow类型注解

javascript - sweetalert2 取消计时器/超时