我想在网页上使用 jQuery AutoComplete。该页面嵌入在应用程序的 IE 控件中。问题是在 IE7 和 8 中,控件无法正确呈现,如下图所示。
图片的顶部是jQuery 的示例页面如何在 Firefox 中加载(在 Chrome 和 IE9 中看起来很相似),底部显示了它在 IE7/8 中的呈现方式。我用红色圈出了这个问题——下拉箭头与控件的其余部分没有正确对齐。
如果我没记错的话,Windows Web 浏览器控件卡在 IE7 渲染模式,除非您修改某些注册表设置,这对我们来说是不可行的。我已经确认如果我通过 WebBrowser 控件查看自动完成组合框,即使我已经安装了 IE9,问题仍然存在于我的机器上。
有没有简单的方法可以通过 javascript/css 修复对齐?我最接近修复的是使用 css 调整高度,但我仍然无法让元素的顶部正确对齐。
或者,是否有人有一个带有 jsQuery 的免费自动完成组合框的解决方案,它不需要主题和/或在 IE7/8 中正确呈现?
IE7/8 上的另一个小问题是工具提示没有出现在正确的位置,但这不是一个大问题,因为此应用程序将删除工具提示。
我已将 jQuery 演示中的源代码加载到 jsFiddle 中:
这是创建箭头按钮的代码:
$("<a>")
.attr("tabIndex", -1)
.attr("title", "Show All Items")
.tooltip()
.appendTo(this.wrapper)
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass("ui-corner-all")
.addClass("custom-combobox-toggle ui-corner-right")
.mousedown(function () {
wasOpen = input.autocomplete("widget").is(":visible");
})
.click(function () {
input.focus();
// Close if already visible
if (wasOpen) {
return;
}
// Pass empty string as value to search for, displaying all results
input.autocomplete("search", "");
});