В настоящее время я борюсь с выпадающими, и я хотел бы поделиться своим опытом:
Есть конкретные ситуации, когда <select>
нельзя использовать и их необходимо эмулировать с помощью раскрывающегося списка.
Например, если вы хотите создать загрузочные группы ввода, такие как Кнопки с выпадающими списками (см. Http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). К сожалению <select>
, не поддерживается в группах ввода, он не будет отображаться должным образом.
Или кто-нибудь уже решил это? Я был бы очень заинтересован в решении.
И чтобы сделать его еще более сложным, вы не можете так просто $(this).text()
поймать, какой пользователь выбран в раскрывающемся списке, если вы используете гликоны или шрифтовые иконки в качестве содержимого для раскрывающегося списка. Например:
<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
потому что в этом случае нет текста, и если вы добавите его, он также будет отображаться в выпадающем элементе, и это нежелательно.
Я нашел два возможных решения:
1) Используйте, $(this).html()
чтобы получить содержимое выбранного <li>
элемента, а затем изучить его, но вы получите что-то вроде этого, <a href="#0"><i class="fa fa-minus"></i></a>
поэтому вам нужно поиграть с этим, чтобы извлечь то, что вам нужно.
2) Использование $(this).text()
и скрыть текст элемента в скрытом пролете:
<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
. Для меня это простое и элегантное решение, вы можете поместить любой текст, который вам нужен, текст будет скрыт, и вам не нужно делать какие-либо преобразования $(this).html()
результата, как в варианте 1), чтобы получить то, что вам нужно.
Надеюсь, это понятно и может кому-нибудь помочь :-)