2012-10-04 42 views
3

我遇到以下问题。scrollIntoView未定义

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

回答

3

第一:变化

if (selectedElement != null) 

if (selectedElement.length) 

因为$("div.node.cen.selected");将永远不会返回null。 jQuery的总是返回一个jQuery对象(空或不是,而是一个jQuery对象

所以在它是空的情况下,selectedElement[0]将返回不确定的,因此scrollIntoView不存在..

第二个:scrollIntoView是一个函数,所以你不要给它赋值。您需要

selectedElement[0].scrollIntoView(); 
2

scrollIntoView调用它是用来与你想显示元素,这样的:

el.scrollIntoView(true); 

注:

滚动窗口,直到该元素是可见的。

语法:

document.all.elementID.scrollIntoView(参数1)

参数: 参数1可选; true或false,指示元素顶部是否滚动到窗口的顶部,或者底部的 元素是滚动到窗口的底部。

此外,scrollIntoView()只能与一些标签使用

http://www.java2s.com/Code/JavaScriptReference/Javascript-Methods/scrollIntoViewisappliedto.htm