我什至不知道如何描述问题,我在我的 web 应用程序上使用 jQuery UI 自动完成,并且由于某种原因,当我第一次加载页面时输入输入, ui-widget-content 打开在错误的位置,如我的以下图片所示。 我认为这是一个 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);
};
最佳答案
这是一个 jQueryUI 错误。这是fixed在 1.9.1 版本中,但如果您必须使用旧版本,只需将其应用于您的 CSS:
.ui-autocomplete {
position: absolute;
top: 0;
cursor: default;
}
关于css - jQuery UI 自动完成未平仓头寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25841416/