Ajax自动完成,具有定制的弹出位置

时间:2010-07-07 18:42:15

标签: javascript jquery ajax autocomplete

我正在做一些涉及<textarea>中ajax自动完成短语的事情。我使用jquery autocomplete插件工作得很好;然而,它被硬编码到这里以将弹出置于 <textarea>下面。

对于我正在处理的内容,<textarea>位于页面底部;理想情况下,我希望选项显示在上方 <textarea>

是否有类似的现有(和半正式)自动完成脚本允许这样做?我的其他选择是:

  • 尝试使用更多jquery
  • 在事后重新定位它
  • 将插件代码破解为重新定位
  • 从头开始写一些东西(听起来很简单,但正常自动填充中有一些细微差别)

建议?


有关信息,这是我最终的结果:

#known-parent .ac_results 
{
    position: fixed !important;
    top: auto !important;
    bottom: 80px !important;
}

2 个答案:

答案 0 :(得分:4)

这不是世界上最干净的解决方案,但您可以在css中使用“!important”覆盖自动完成插件写入的样式属性。

无论如何,样式尽可能地属于CSS。

如果我没记错的话,插件会在autosuggest div的“style”属性中设置“top”值。

在你的CSS中你应该能够做到:

#whatever_the_id_of_the_box_is {
    position: absolute !important;
    top: {{ whatever value you want here }} !important;
}

答案 1 :(得分:1)

您可以更改弹出窗口的CSS并将负值分配给margin-top吗?这应该将内容移到顶部,但由于相关值将位于顶部,因此您的结果看起来有点奇怪。

是否也无法编辑自动完成插件来编辑容器的style并移动框的位置?我认为这不会太难,但我有一段时间没见过插件。

<div style="display: none; position: absolute; width: 151px; top: 21px; left: 91.65px;" class="ac_results"></div>

您需要在插件代码中对此进行调整。

编辑:我实际上不会推荐这个。应该有一种方法来反转UI插件中的结果顺序。这样做,并更改样式值,你应该有一个干净的结果集。当我有机会时,我会添加确切的代码