Я использую автозаполнение jQueryUI , но по следующим причинам я хотел бы переместить результаты поиска в DOM рядом с тегом ввода, который выполняет поиск.
Проще всего увидеть это на jsFiddle , но по сути код, демонстрирующий проблему, выглядит так:
<html> <head>
<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/flick/jquery-ui.css" />
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript"> google.load("jquery", "1.4");
google.load("jqueryui", "1.8"); </script>
<script>
$(function() {
$("#X").autocomplete({
source: ['abc', 'def', 'ghi']
});
});
</script>
<style type="text/css">
.B { display: none; }
.A:hover .B { display: block; }
</style>
</head> <body>
Hello
<div class='A'>
select:
<div class='B'>
<input id='X' />
</div>
</div>
World
</body> </html>
Проблема заключается в том, что когда кто-то наводит указатель мыши на параметр автозаполнения, элемент, содержащий тег автозаполнения, больше не указывается в «mouseover'ed», и согласно правилам CSS тег ввода исчезает вместе с контейнером. Это не желаемое поведение; Я хотел бы, чтобы тег ввода был виден при выделении вариантов автозаполнения.
Я бы надеялся и ожидал, что можно будет переместить элементы автозаполнения в DOM рядом с тегом ввода (т. Е. x = $("#X"); x.append(x.autocomplete('widget'))
), и, следовательно, правила CSS сохранят ввод и его родительский элемент видимым. Увы, это не работает.
Буду благодарен за любые мысли о том, как добиться этого сочетания CSS и jQueryUI.
Спасибо.
Brian