Большинство средств визуализации (все, кроме Gecko, я думаю) реализуют открытые <select>
меню и их опции в отдельном «окне», а не как элементы на странице. Таким образом, страница не обязательно знает о взаимодействии пользователя с открытым меню <select>
. Маловероятно, что вы сможете достичь желаемого эффекта во всех основных браузерах ...
Редактировать: ... но может быть и так. Это работает для меня в Safari и Firefox. Я не могу сейчас тестировать в IE, но попробую:
var timer;
$('#container').mouseleave(function(e) {
if($(e.target).parents('#container').length) {
return;
}
timer = setTimeout(function() {
$('#container select').blur();
}, 50);
}).mouseenter(function(e) {
if(timer) {
clearTimeout(timer);
}
});
Редактировать 2: на самом деле Safari вообще не запускает mouseleave
(или mouseout
), когда открыто «окно» <select>
.