Почему скрипт jquery меняет некоторые стили css?

Как это должно выглядеть: Кнопка страницы с выпадающим меню должна открываться с эффектом наведения. Вы наводите курсор мыши на кнопку «Страница», появляется раскрывающееся меню, кнопка должна быть с темным фоном, точно так же, как другие кнопки «Продукт» и «Блог» (эти две кнопки хорошо работают в любом случае). Пока вы выбираете что-то в раскрывающемся меню, кнопка «Страница» по-прежнему имеет тот же стиль (темный фон, как у последних двух кнопок при наведении курсора). Только когда курсор покинет раскрывающееся меню или кнопку, раскрывающееся меню должно исчезнуть, а кнопка «Страница» должна быть с белым фоном.

Текст выше описывает, как кнопка должна работать с кодом JavaScript. Код JS создает эффект наведения, но что-то не так со стилями.

Теперь с JS-кодом кнопка «Страница» (когда курсор находится на этой кнопке и в раскрывающемся меню) выглядит как активная кнопка «Домой» с белым фоном. Нам нужно это исправить и сделать кнопку как в описании выше.

Пожалуйста, проверьте JSFiddle, чтобы понять, о чем я говорю.

Извините за мой английский, если найдете ошибки :)

jsfiddle

HTML

<div class = "menu">
    <ul class = "nav nav-pills">
        <li class = "nav-item">
            <a class = "nav-link active uppercase" href = "#">Home</a>
        </li>
        <li class = "nav-item dropdown">
            <a class = "nav-link dropdown-toggle uppercase  outline" data-toggle = "dropdown" href = "#" role = "button" aria-haspopup = "true"
                aria-expanded = "false">Pages</a>
            <div class = "dropdown-menu dropdown-menu-right">
                <div class = "wrapperForDropdomnUpArrow">
                    <div class = "dropdownUpArrow">
                    </div>
                </div>
                <a class = "dropdown-item uppercase aboutUs" href = "#">About us</a>
                <a class = "dropdown-item uppercase" href = "#">Company</a>
            </div>
        </li>
        <li class = "nav-item">
            <a class = "nav-link uppercase outline" href = "#">Product</a>
        </li>
        <li class = "nav-item">
            <a class = "nav-link uppercase outline" href = "#">Blog</a>
        </li>
    </ul>
</div>

CSS

.menu a:hover {
    color: #fff;
    background: #000;
    border-radius: 3px;
    transition: 0.4s;
}

.menu a {
    font-size: 12px;
    font-family: montserrat;
    color: #afb0b1;
    text-align: center;
    padding: 16px 19px;
    line-height: 12px;
    margin: 0px -5px;
}

.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
    background-color: #f3f6f9;
    color: #000;
}

.dropdown-menu {
    background-color: #000;
    padding: 0px;
    border: 0;
    margin: 1px 0px 0px 0px;
}

.dropdown-menu a {
    text-align: left;
    padding: 12.5px 69px 12.5px 22px;
    line-height: 12px;
    margin: 0;
}

.dropdown-menu .aboutUs {
    text-align: left;
    padding: 20px 69px 12.5px 22px;
    line-height: 12px;
}

.dropdown-menu .FAQ {
    text-align: left;
    padding: 12.5px 69px 20px 22px;
    line-height: 12px;
}

a.nav-link.dropdown-toggle:focus {
    color: #fff;
    background: #000;
    border-radius: 3px;
}

jQuery

$(".dropdown-menu").css('margin-top', 0);
$(".dropdown")
    .mouseover(function () {
        $(this).addClass('show').attr('aria-expanded', "true");
        $(this).find('.dropdown-menu').addClass('show');
    })
    .mouseout(function () {
        $(this).removeClass('show').attr('aria-expanded', "false");
        $(this).find('.dropdown-menu').removeClass('show');
    });

Также я узнал, что удаление этой строки

    $( this ).addClass('show').attr('aria-expanded',"true");

внести некоторые изменения, но удаление этой строки не является полным решением

Перед. Нам нужно это починить

После

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
66
1

Ответы 1

Похоже, ваша проблема связана с загрузкой и ее css. Взгляните на этот пост и попробуйте настроить бутстрап для желаемых цветов. Изменение активного цвета кнопки Bootstrap

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

Другие вопросы по теме