Показывать только значки в выпадающем меню Bootstrap 4 с помощью jQuery - PullRequest
0 голосов
/ 25 марта 2019

Я хочу создать Раскрывающееся меню шрифта веб-значка , в котором отображается соответствующий текст рядом с иконками флага ТОЛЬКО при открытии меню.

Когда выбор сделан и меню закрыто, я хочу видеть ТОЛЬКО значок активного флага без текста.

Веб-страница должна загружаться с одним из флагов, по умолчанию активным, например: Греция

By default it should be selected with one of the options like Greece When you click on it, it should tell you more about the country

Это мой код JQuery, я думаю, что проблема заключается в this (TEXT) Но я уверен, что кто-то может исправить этот код, или, возможно, даже предложить лучшее решение, так как я уверен, Bootstrap 4 могут иметь другие параметры, используя активное состояние добавить класс / удалить класс с помощью jQuery.

$(".dropdown-menu li a").click(function(){
  $(this).parents(".dropdown").find('.btn').html($(this).text() + ' <span class="caret"></span>' + ' <span class="caret"></span>');
  $(this).parents(".dropdown").find('.btn').val($(this).data('value'));
});

Мой HTML (с помощью Bootstrap 4)

<nav class="p-0 navbar navbar-expand fixed-top bg-white fixed-top">
    <div class="container">
        <ul class="container-fluid navbar-nav js-signin-modal-trigger justify-content-end list-unstyled" id="navbar2SupportedContent">
            <li class="dropdown">
                <a class="bg-light btn btn-default dropdown-toggle mx-0" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"><span class="flag-icon flag-icon-gr"></span></a>
                <ul class="dropdown-menu text-left" aria-labelledby="dropdownMenu1">
                    <li><a href="#" data-value="action"><span class="ml-2 label label-default"><span class="flag-icon flag-icon-gr"></span>Greece</span> </a> </li>
                    <li><a href="#" data-value="another action"><span class="ml-2 flag-icon flag-icon-fr"></span> <span>France</span></a></li>
                    <li><a href="#" data-value="something else here"><span class="ml-2 flag-icon flag-icon-us"></span> <span>United States</span></a></li>
                    <li><a href="#" data-value="separated link"><span class="ml-2 flag-icon flag-icon-es"></span><span> España</span></a></li>
                </ul>
            </li>
            <li><a href="#" data-signin="login" class="Loginbtn font-weight-bold btn navbar-btn px-md-4 px-sm-2 px-xs-1">Log in</a></li>                
            <li><a href="#" data-signin="signup" class="signupbtn text-white font-weight-bold btn navbar-btn px-md-4 px-sm-2 px-xs-1 ml-md-2 ml-sm-1 btn-secondary">Sign up</a></li>
        </ul>
    </div>
</nav>

Это милая маленькая скрипка, с которой можно играть: https://jsfiddle.net/stvu5ckj/1/

Моим мотивом для этого кода является веб-сайт www.nextdoor.com. Если я смогу создать нечто подобное, это будет ИДЕАЛЬНО!

Next Door - Great Sample of what I want

1 Ответ

0 голосов
/ 25 марта 2019

Привет, я бы посоветовал вам загрузить файл json с iso-именами всех стран, а затем в каждом совпадении код с кодом boostrap, и вы получите здесь название страны: json btw Json

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...