我正在测试Jquery Treeview并发现一个我无法弄清楚的错误。
似乎发生的情况是第一层、第二层嵌套上的切换变得困惑。
要测试...转到 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/