делает
$('select').mousedown(function(e) {
e.preventDefault();
});
работает в Chrome, IE 9 (не 8) и Opera (по крайней мере, версия 11.61, которую я установил). Это не работает в Firefox, не знаю почему. Однако размытие на элементе и фокусировка на окне не работают для меня никогда, ни в mousedown, ни при щелчке.
Вдохновленный ответом, за который здесь дважды проголосовали (/886162/zapretit-vybor-raskryvayschegosya-spiska-no-razreshit-ego-sobytiya), Я придумал этот небольшой вариант (оригинал заставляет мерцать все окно, оно немного отвратительно):
$('select').mousedown(function(event) {
var $select = this;
window.setTimeout(function () {
$select.blur();
$select.focus();
//do whatever like alert("This message");
},0);
event.preventDefault();
return false;
});
Теперь, для FF (у меня версия 10) и IE <9, это означает небольшое мерцание, так как выпадающий список открывается и закрывается сразу после этого, но для предотвращения его использования в любом другом современном браузере есть функция protectDefault. Выбор - зло, я не думаю, что есть хороший кросс-браузерный способ контролировать, показывает ли выпадающий список или нет. Возвращение false должно что-то делать в соответствии со слухами в Интернете, поэтому я оставил это там, может быть, оно работает в старых браузерах. </p>
П.С .: В своем вопросе вы имели в виду "[...] список должен не открываться, а вместо этого [...]", верно?