Переключить цвет фона - PullRequest
0 голосов
/ 25 апреля 2020

Здесь я изменил панель навигации цвет фона при нажатии LINK (DD One или DD Two) с белого на черный, мне нужно, когда unclick LINK (DD Один или ДД Два) навигационная панель должна вернуться на белый фон.

JSFiddle Demo

// Navigation dropdown start

  $(".navbar-header .dropdown .nav-link").click(function(e){
    $(this).closest(".navbar-header").addClass("navbar-selected");
  });

  $(document).click(function(event){
    $(".navbar-header").removeClass("navbar-selected");
  });

  // Navigation dropdown end

enter image description here

Мне нужно сделать это - https://jsfiddle.net/adampavlov/1x56droe/1/

Ответы [ 3 ]

1 голос
/ 25 апреля 2020

Вы можете прослушать события из bootstrap, чтобы добавить или удалить класс при открытии или закрытии меню, например:

$(".navbar-header").on('show.bs.dropdown', function(e) {
  $(this).addClass("navbar-selected");
});

$(".navbar-header").on('hide.bs.dropdown', function() {
  $(this).removeClass("navbar-selected");
})
0 голосов
/ 25 апреля 2020

Я основывался на ответе Палы sh, чтобы объяснить это. Вы просто добавляете и удаляете класс в зависимости от того, имеет ли он класс navbar-active. Я надеюсь, что это тот вариант использования, который вы ищете. Дайте мне знать

Скрипка

// Navigation dropdown start

  $(".navbar-header .dropdown .nav-link").click(function(e){
  var header = $(this).closest(".navbar-header");
    if (header.classList.has("navbar-selected"))
    {
        header.classList.remove("navbar-selected");
    } else
    {
        header.classList.add("navbar-selected");
    }
  });
0 голосов
/ 25 апреля 2020

Вы можете сделать это, сохранив предыдущую цель и на основе этого добавить / удалить класс navbar-selected, например:

let previousTarget = null;
$(".navbar-header .dropdown .nav-link").click(function(e) {
  if (this !== previousTarget) {
    $(this).closest(".navbar-header").addClass("navbar-selected");
    previousTarget = this;
  } else {
    $(this).closest(".navbar-header.navbar-selected").removeClass("navbar-selected");
    previousTarget = null;
  }  
});

Рабочая демонстрация

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