Я хотел бы получить элемент html, соответствующий списку автозаполнения, то есть раскрывающейся части, которая открывается при вводе в элемент ввода jQuery combobox. Как мне получить этот выпадающий элемент с помощью jQuery?
Получить раскрывающуюся часть комбинированного списка автозаполнения jQuery
Ответы (1)
Если вы говорите об автозаполнении jQueryUI, вы можете получить доступ к элементу menu
, используя:
$('autocomplete_selector').data("autocomplete").menu.element;
Итак, в контексте события open
вы можете сделать что-то вроде этого:
$("input").autocomplete({
open: function (event, ui) {
// menu is a jQuery object.
var menu = $(this).data("autocomplete").menu.element;
}
});
Пример: http://jsfiddle.net/PvgGw/
Для виджета combobox вам нужно перепрыгнуть через еще несколько обручей, поскольку input
генерируется динамически:
$("combobox_selector")
.data("combobox")
.wrapper
.find("input")
.data("autocomplete")
.menu
.element;
person
Andrew Whitaker
schedule
11.07.2012
Будет ли это работать для jQuery combobox с id = 'abc': $ ('# abc'). ('. Ui-auto-complete)?
- person Sunil; 11.07.2012
Что вы имеете в виду под jQuery combobox?
- person Andrew Whitaker; 11.07.2012
@Andrews - поле со списком автозаполнения, доступное в jQuery-ui, как по этой ссылке: jqueryui.com/ demos / autocomplete / # option-source
- person Sunil; 11.07.2012
@Andrews - Я пробовал ваш подход, но он не работает: $ (# combobox123) .data (autocomplete) .menu.element всегда имеет значение null. Но если я попробую $ (# combobox123) .next (.ui-autocomplete), то получу ненулевой объект. Значит, в вашем выражении лица может быть что-то неправильное.
- person Sunil; 11.07.2012
Это потому, что ваш селектор выбирает элемент
select
, а не input
, к которому подключаемый модуль автозаполнения прикреплен внизу. Пожалуйста, посмотрите мое обновление.
- person Andrew Whitaker; 11.07.2012
У меня все еще есть проблемы с вашим подходом. Мне нужно определить, имеет ли раскрывающийся список фокус, и когда я использую ваш селектор с .is (: focus), он всегда возвращает false.
- person Sunil; 11.07.2012
Чего именно вы пытаетесь достичь? Виджет автозаполнения имеет собственное
focus
событие, которое может пригодиться. Помогает ли вообще проверка видимости меню?
- person Andrew Whitaker; 11.07.2012
Я что-то делаю, если раскрывающееся меню автозаполнения не открывается, т.е. свернуто. Может быть, что-то другое, кроме фокуса, поможет, например, если он будет видимым или открытым. Спасибо
- person Sunil; 11.07.2012