Ответ pimvdb мне очень помог, но я добавил пару лишних битов, чтобы справиться с активацией клавиатуры и навигацией вне выбора:
$('select').mouseup(... as in pimvdb... )
.blur(function() {
$(this).data('isopen', false);
}).keyup(function(ev) {
if (ev.keyCode == 13)
alert(1);
});
Обработчик размытия имеет дело с навигацией вне выбораКогда раскрывающийся список открыт, обработчик ключей работает, когда вы изменяете значение выбора с помощью клавиатуры.В таком случае считается, что пользователь только окончательно выбрал значение, когда щелкнул по кнопке возврата, чтобы уйти.Если вам нужно другое поведение с клавиатурой, это не должно быть сложно сделать.