2

我有一个文本框,我将 jQuery UI 的自动完成功能附加到,我正在使用 CSS 通过此处的示例为其提供最大高度。我的问题是这样做会导致bgiframe解决的 z-index 问题再次出现,但方式不同。最初的自动完成菜单在它下面的所有控件之上,但是当我开始滚动时,自动完成菜单落在它们后面。

有什么建议么?

编辑:

这纯粹是一个 IE6 错误。

替代文字

替代文字

如您所见,向下滚动后,自动完成功能落后于其他控件。

4

4 回答 4

2

我可以通过在以下行(来自 jquery.bgiframe.js)中用scrollHeight替换offsetHeight来解决这个问题:

height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+

此更改解决了带有垂直滚动条的自动完成字段的错误。我无法在其他类型的对话框中发现任何回归(但我没有进行广泛的测试)。

于 2011-01-28T12:10:07.760 回答
0

You need to reverse the z-index order of the form elements (or their containers) using javascript. I.e., "Social Worker" has the lowest, "DX Code" the highest z-index.

于 2011-01-24T22:27:33.917 回答
0

您可以将 offsetHeight 更改为 scrollHeight,就​​像 Siggen 所说的那样,但是当自动完成仅返回 1 个结果时,我遇到了问题。1 结果被压缩到一个只有 2 px 高的窗口中。不过我找到了解决办法。当你有一个 data.length<2 时,你应该使用 offsetHeight,而不是 scrollHeight。

您必须修改 autocomplete.js。

Locate this code:
if($.fn.bgiframe)list.bgiframe();

并做到这一点:

if($.fn.bgiframe){
    if(data.length<2)
       list.bgiframe({height:'expression(this.parentNode.offsetHeight+\'px\')'});
    else 
       list.bgiframe();
}

请记住,此代码应与 Siggen 的修复程序结合使用。

于 2011-03-28T15:07:24.283 回答
0

我已经将这两个参数的组合用于高度,如下所示:

'height:'+(s.height=='auto'?'expression(Math.max(this.parentNode.offsetHeight,this.parentNode.scrollHeight)+\'px\')':prop(s.height))+';'

查看 max 函数。现在没有滚动条很好(更短的列表和更长的列表)

现在自动完成组件在 IE6 中看起来很完美。

于 2012-12-01T11:01:26.057 回答