Добавление параметров для выбора элемента в точке его открытия в JavaScript - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть система с быстро меняющимся набором элементов, которые могут отображаться как опции в полях выбора.Я мог бы обновлять сами параметры каждый раз, когда изменяются данные, но я бы предпочел просто заполнить параметры в тот момент, когда пользователь собирается их увидеть.Например, когда он собирается открыть.Есть ли событие для этого?

Полагаю, я мог бы использовать событие «щелчок» или «mousedown», но как насчет навигации по клавиатуре?Могут быть и другие случаи (возможно)

Кстати, я знаю как добавить опции в выборку, событие открытия - это то, что мне нужно.

Спасибо, Бен

Ответы [ 3 ]

2 голосов
/ 01 сентября 2011

У вас есть два варианта: click() и focus() других нет.

1 голос
/ 01 сентября 2011

Используйте focus(), а не click(), поскольку событие щелчка не дает достаточно времени, чтобы заполнить раскрывающийся список новыми значениями, что вызывает странное поведение. Также событие click будет захватывать только щелчки мыши, с помощью focus () вы получаете события фокусировки как мыши, так и клавиатуры, а также дает достаточно времени для того, чтобы раскрывающийся список заполнялся новыми данными. Вот скрипка с некоторыми простыми экспериментами, попробуйте каждую функцию по одной за раз, чтобы увидеть разницу.

1 голос
/ 01 сентября 2011

Если вы делаете что-то подобное, выпадающий список, скорее всего, не будет предпочтительным элементом пользовательского интерфейса.

Я бы порекомендовал перейти на виджет автозаполнения jQuery UI; тогда вы можете просто обслуживать элементы на основе запроса, введенного пользователем.

Кроме того, вы можете прикрепить к событию keyup (или событию focus) и показать набор элементов в этой точке (как при нажатии на «выпадающий список») http://jqueryui.com/demos/autocomplete/#maxheight

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...