Rozwiązanie Raj_89 jest najbliższe ważnej opcji, chociaż wspomniane przez Kevina Swarta w komentarzu, że złamie IE, co dla dużej liczby klientów korporacyjnych jest problemem (i informowanie klienta, że nie będzie kodować do IE "ponieważ powody są mało prawdopodobne, aby twój szef był szczęśliwy;)).
Więc bawiłem się z nim i oto jest problem: zdarzenie "onmousedown" rzuca dopasowanie w IE, więc to, co chcemy zrobić, to zapobiec domyślnej sytuacji, gdy użytkownik kliknie menu po raz pierwszy.Ważne jest, aby to był tylko czas, w którym to robimy: jeśli zapobiegniemy obrażeniom podczas następnego kliknięcia, kiedy użytkownik wybierze, zdarzenie onchange nie zostanie uruchomione.
W ten sposób uzyskujemy ładną listę rozwijaną, brak migotania, brak zerwania IE - po prostu działa ... przynajmniej w IE10 i nowszych wersjach oraz najnowsze wersje wszystkich innych głównych przeglądarek.
<p>Which is the most annoing browser of them all:</p>
<select id="sel" size = "1">
<option></option>
<option>IE 9</option>
<option>IE 10</option>
<option>Edge</option>
<option>Firefox</option>
<option>Chrome</option>
<option>Opera</option>
</select>
Oto skrzypce: https://jsfiddle.net/88cxzhom/27/
kilka rzeczy zauważyć: 1) pozycjonowanie bezwzględne i ustawienie z-index jest pomocne, aby uniknąć przemieszczania innych elementów, gdy są wyświetlane opcje. 2) Użyj właściwości "currentTarget" - będzie to wybrany element we wszystkich przeglądarkach. Podczas gdy "cel" zostanie wybrany w IE, reszta faktycznie pozwoli ci pracować z opcją.
Mam nadzieję, że to komuś pomaga.
Dziękujemy! Niestety, atrybut size nie jest tym, czego szukałem, ponieważ sprawia, że wszystkie opcje x są widoczne. Próbowałem uniknąć javascript dla tak małego, ale denerwującego problemu. Wydaje się jednak, że nie mam innego wyboru. – medowlock
tak. Osobiście nigdy nie widziałem tego problemu, ponieważ wszystkie "
Nigdy nie zrozumiem, jak twórcy przeglądarek budują WebComponents i co tam, i nie mogą wydawać się tak proste, jak to. każdy programista kiedykolwiek powiedział "hmm, chciałbym ograniczyć liczbę elementów widocznych na moim liście rozwijanym ... ta brzydka lista będzie dobrze!" – Petrov