scrollIntoView未定义

时间:2012-10-04 08:10:47

标签: javascript jquery .net

我有以下问题。

我在.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
        }
    }

2 个答案:

答案 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