我有以下问题。
我在.NET中有一个树视图控件,我创建了一个自动完成搜索框,在树中搜索一个名称 - 然后我可以选择它,然后用选定的类突出显示该项目。
树视图很长,所以我给它一个高度和溢出滚动。
问题在于,当我搜索它时,我想查看或向下滚动到所选项目。
所以我创建了以下脚本来scrollIntoView它,但这似乎不起作用:
function search_itemSelected(sender, e) {
var hdSearchID = $get('<%= hdSearchID.ClientID %>');
hdSearchID.value = e.get_value();
var selectedElement = $("div.node.cen.selected"); // This works
if (selectedElement != null) {
selectedElement[0].scrollIntoView = 10; // This keeps coming back as undefined
}
}
答案 0 :(得分:5)
首先:更改
if (selectedElement != null)
到
if (selectedElement.length)
因为$("div.node.cen.selected");
永远不会返回null
。 jQuery总是返回一个jQuery对象(是否为空,但是jQuery对象)
所以在它为空的情况下,selectedElement[0]
将返回undefined,因此scrollIntoView
不存在..
第二: scrollIntoView
是一个函数,因此您不为其赋值。你需要用
selectedElement[0].scrollIntoView();
答案 1 :(得分:2)
scrollIntoView
与您要显示的元素一起使用,如:
el.scrollIntoView(true);
注意:
滚动窗口,直到元素可见。
语法:
document.all.elementID.scrollIntoView(参数1)
参数: param1可选; true或false,表示元素的顶部 滚动到窗口的顶部或底部 元素滚动到窗口的底部。
此外,scrollIntoView()
只能与某些代码一起使用
http://www.java2s.com/Code/JavaScriptReference/Javascript-Methods/scrollIntoViewisappliedto.htm