Css jQuery UI自动完成打开位置

Css jQuery UI自动完成打开位置,css,jquery-ui,jquery-ui-autocomplete,Css,Jquery Ui,Jquery Ui Autocomplete,我甚至不知道如何描述这个问题,我在我的webapp上使用jQuery UI Autocomplete,由于某种原因,当我第一次输入页面加载时,UI小部件内容在错误的位置打开,如下图所示。 我假设这是一个CSS问题,但无法解决它应该是哪个属性。 在两幅图像上,我使用相同的精确控制。 调出焦点并返回文本框后,它会在正确的位置自行解析(在两个示例中) 更新 在再次查看开发工具之后,我看到了差异。 在第一个示例中,当我第一次打开ui autocomplete时,“left”属性用值524.5px填充

我甚至不知道如何描述这个问题,我在我的webapp上使用jQuery UI Autocomplete,由于某种原因,当我第一次输入页面加载时,UI小部件内容在错误的位置打开,如下图所示。 我假设这是一个CSS问题,但无法解决它应该是哪个属性。 在两幅图像上,我使用相同的精确控制。 调出焦点并返回文本框后,它会在正确的位置自行解析(在两个示例中)

更新

在再次查看开发工具之后,我看到了差异。 在第一个示例中,当我第一次打开ui autocomplete时,“left”属性用值524.5px填充,第二次用值533px填充(然后它显示在正确的位置)

在第二个示例中,它是相同的,但具有“top”属性,-140px和199px(此控件位于对话框中)。 这些属性位于element.style上(我相信在创建控件时它是自动的)

我相信上面提到的px代表了正文中自动完成文本框的偏移量,但是如何在第一次运行时将其修正为正确的px呢

****仅在chrome浏览器上发生****

我创建控件的代码是:

$('#service').autocomplete({
        source: function (request, response) {

        },
        select: function (event, ui) {
            event.preventDefault();
            $(this).val(ui.item.label);
        },
        minLength: 2,
    }).data("ui-autocomplete")._renderItem = function (ul, item) {
        var $a = $("<a></a>").text(item.label);
        highlightText(this.term, $a); //THE HIGHLIGHT TEXT FUNCTION I USE
        return $("<li></li>").append($a).appendTo(ul);
    };
$(“#服务”)。自动完成({
来源:功能(请求、响应){
},
选择:功能(事件、用户界面){
event.preventDefault();
$(this.val(ui.item.label);
},
最小长度:2,
}).data(“ui自动完成”)。\u renderItem=功能(ul,项目){
var$a=$(“”).text(item.label);
highlightText(this.term,$a);//我使用的highlightText函数
返回$(“
  • ”).append($a).appendTo(ul); };
    如果对问题没有清晰的认识,就很难找到解决方案。 这可能是一个CSS问题。 尝试使用一些开发人员工具检查HTML/CSS代码来发现问题

    对于Chrome:

    好吧,在阅读了这个确切的问题之后,我再次查看了我的CSS类,发现我已经用100%的值覆盖了属性“top”。
    删除了它并修复了问题:):)

    这是一个jQueryUI错误。它在1.9.1版本中,但如果必须使用旧版本,只需将此应用于CSS:

    .ui自动完成{
    位置:绝对位置;
    排名:0;
    游标:默认值;
    }