如题,用fancytree插件时,根据需求添加了一个搜索框用来搜索tree中节点的title,搜索之后找到了node,能选中但是由于位置有限所以树的高度不高。选中的节点在下边,怎么在找到该节点时将他滚动到屏幕可见区域
//选中的代码如下
$(".dqq_tree_01").fancytree("getTree").visit(function (node) {
if (node['data']['fdepartmentNo'] == _v.fdepartmentNos) {
// node.setSelected(true);
node.setFocus()
}
});
问题已解决,之前一直忙着写代码,忘记了csdn还发了问题,把代码贴上来吧,思路如下:
//根据搜索到的title找到子节点,然后通过调整改节点距离父元素的高度来控制他滚动到可见位置'
var isChecked=false;
$(".dqq_tree_01").fancytree("getTree").visit(function (node) {
//找到该节点 ischecked是为了防止搜索到多个重复的名称
if (node.title.indexOf(name)>-1 && !isChecked) {
//选中节点方法
node.setSelected(true);
//获取几个关键的属性
var Dom = $(node.li),
liToParent = Dom.position().top,
ParentDom = $("#tree_01"),
ParentHeight = ParentDom.height();
//设置距顶部位置
ParentDom.scrollTop(liToParent-ParentHeight+22)
//选中到一次后就不在选中以后的
isChecked=true;
}
});
技术有限,只用js做了一个简单的滚动。不能一下搜索多个,若果有多个只选中第一个,目前该问题还未解决。