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 に追加せず、ページの BODY に UL を追加するだけです。実際に渡すことで、問題を解決しました
$('body').children('ul.ui-autocomplete').appendTo(outerDiv);
関数の外側に、しかし私はよりエレガントな方法でそれをしたいと思います:-)
前もって感謝します。