Я перепробовал все эти решения, и ни одно из них не сработало полностью для меня. Это то, что я придумал
$(document).ready(function () {
var clicknum = 0;
$('.dropdown').click(
function() {
clicknum++;
if (clicknum == 2) {
clicknum = 0;
$(this).css('position', '');
$(this).css('width', '');
}
}).blur(
function() {
$(this).css('position', '');
$(this).css('width', '');
clicknum = 0;
}).focus(
function() {
$(this).css('position', 'relative');
$(this).css('width', 'auto');
}).mousedown(
function() {
$(this).css('position', 'relative');
$(this).css('width', 'auto');
});
})(jQuery);
Обязательно добавьте раскрывающийся класс к каждому раскрывающемуся списку в html
Хитрость здесь в том, чтобы использовать специальную функцию щелчка (я нашел ее здесь Событие огня каждый раз, когда элемент DropDownList выбирается с помощью jQuery ). Многие другие решения здесь используют изменение обработчика событий, которое работает хорошо, но не сработает, если пользователь выберет ту же опцию, что была выбрана ранее.
Как и во многих других решениях, фокус и размытие предназначены для того, когда пользователь помещает раскрывающийся список в фокус, а размытие - для того, когда они щелкают.
Возможно, вы захотите добавить в это своего рода обнаружение браузера, чтобы оно действовало, т.е. Это не выглядит плохо в других браузерах, хотя