我使用javascript和ajax创建了自己的自动完成功能。 这一切都运作良好,但我有一个主要问题:定位。 我目前正在定位这样的列表:
function ajaxautocomplete(elm)
{
lista.innerHTML="";
var x=getOffset(elm).left;
var y=getOffset(elm).top;
lista.style.position="absolute";
lista.style.left=(x+5)+"px";
lista.style.top=(y+25)+"px";
...
}
其中“lista”是我的自动完成列表,“elm”是当前文本输入。 现在,我有一个表格,文本输入作为单元格,他们需要具有此自动完成功能。此定位有效,但如果表格足够大且需要滚动,当我向下滚动页面并尝试自动完成底部的单元格时,定位不再起作用,我的列表出现在页面顶部的某处如果我滚动得足够的话,也许在屏幕之外。
任何想法,即使我在滚动页面,我怎么能在该列表中进行动态分配? 谢谢!
编辑: 我忘了提,这是我的getOffset(elm)函数:
function getOffset( el ) {
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}