我对 jquery ui 自动完成和 IE7/8 有一个奇怪的行为。自动完成的默认行为是创建一个 UL 并将其附加到页面的 BODY。在我的情况下,我想将此 UL 附加到也具有 INPUT 的 DIV(触发自动完成的位置)。所以我这样做了:
(function($) {
$.widget("ui.combobox", {
_create: function() {
var select = this.element.hide();
var outerDiv = $("<div>")
.insertAfter(select);
//Autocomplete code...
.
.
$('body').children('ul.ui-autocomplete').appendTo(outerDiv);
}
});
})(jQuery);
这在 Firefox/Chrome 上运行良好,但 IE7/8 不会将 UL 附加到 outerDiv,它只是让 UL 附加到页面的 BODY。我通过实际通过
$('body').children('ul.ui-autocomplete').appendTo(outerDiv);
到函数的外部,但我想以更优雅的方式做到这一点:-)
在此先感谢。