移动jQueryUI自动完成的位置

移动jQueryUI自动完成的位置,jquery,css,jquery-ui,jquery-ui-autocomplete,Jquery,Css,Jquery Ui,Jquery Ui Autocomplete,如何将jQueryUI自动完成显示列表的位置向下移动一点 我可以使用var ul=$(“#字段”).autocomplete().autocomplete('widget') 但是,在ul上使用offset()不起作用,因为当小部件打开时,会定位ul 请参阅。jQueryUI插件更改自动完成元素样式,以便将其放置在文本字段旁边。 因为样式属性只能使用重写!重要的关键字,不建议更改插件的代码以绕过该关键字,您可以使用以下CSS: .ui-autocomplete { top: 100px !i

如何将jQueryUI自动完成显示列表的位置向下移动一点

我可以使用
var ul=$(“#字段”).autocomplete().autocomplete('widget')

但是,在
ul
上使用
offset()
不起作用,因为当小部件打开时,会定位
ul


请参阅。

jQueryUI插件更改自动完成元素样式,以便将其放置在文本字段旁边。 因为样式属性只能使用
重写!重要的
关键字,不建议更改插件的代码以绕过该关键字,您可以使用以下CSS:

.ui-autocomplete {
  top: 100px !important;
}

不确定这是否是最好的,但有一个选择是:

open: function(event, ui) {
      var ul = $(this).autocomplete('widget'),offset=ul.offset();
      ul.offset({top:offset.top+20}) //Move 20px down
    },
您可以使用“位置选项”字段,如下面的代码段中所示,其中我在自动完成时向右移动了100

var ul=$("#field").autocomplete({ source: countries_starting_with_A, minLength: 1, position: { my : "left top+20", at: "left bottom" }, select: function(event, ui) { ............................................

身份证件
国家(以A开头)



Hi Eburge,您知道无论主题如何,自动完成列表的位置是否总是相同的吗?这些似乎是更“正确”的解决方案,但是,实施当前显示它向右移动,而不是向下移动。我们能做相对运动吗?我更新了片段,就像你用偏移量做的一样,我用位置重复了一遍。啊,你明白了!请解释一下为什么
{my:“left top+20”,at:“left bottom”}
会执行它的功能?是的,它会执行您尝试对偏移量执行的操作,因为元素的位置现在是top+20,而输入的“at”必须位于左侧和底部位置。我的偏移解决方案也起作用。我只是觉得你的解决方案更正式。谢谢你的帮助!