我对jquery ui自动完成和IE7/8有一种奇怪的行为。
自动完成的默认行为是创建一个UL并将其附加到页面主体。在我的例子中,我想将这个UL附加到同样具有输入的DIV(在这里触发了autocomplete)。
所以我做到了:
(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').children('ul.ui-autocomplete').appendTo(outerDiv);
在功能之外,但我想用一种更优雅的方式来做:-)