我遇到过同样的问题。只有同时设置了autoScroll: true和filter: {mode: "hide"}设置时才会出现。如果您可以在没有这些设置之一的情况下离开,它就可以正常工作!
当为节点的最后一个子节点计算自动滚动时,nodeSetExpanded() 方法会出现问题。如果这个孩子不符合过滤条件,它会被过滤隐藏,所以 .is(":visible") 断言失败。我通过在 FancytreeNode 中引入以下方法在本地解决了这个问题:
getLastVisibleChild: function() {
var last = null;
if (this.children) {
for(var i=0, l=this.children.length; i<l; i++){
if ($(this.children[i].span).is(":visible")) {
last = this.children[i];
}
}
}
return last;
}
比我在 nodeSetExpanded() 中使用这个方法来替换
// Scroll down to last child, but keep current node visible
node.getVisibleChild().scrollIntoView(true, {topNode: node}).always(function(){
和
// Scroll down to last child, but keep current node visible
node.getLastVisibleChild().scrollIntoView(true, {topNode: node}).always(function(){
工作正常。