У меня проблема с моим кодом, я пытаюсь закодировать кнопку, чтобы закрыть некоторые div, используя классы, но .removeClass () работает не так, как должен.

вот мой код:

    $(".btn-fechar-top").click(function() {
        $(".bg-over-lay").removeClass("show-over-lay");
        $(this).parent().parent().removeClass(function (index, className) {
            return (className.match (/(^|\s)show-\S+/g) || []).join(' ');
        });
        level_menu = 0; 
    })

.bg-overlay и другой элемент, который я получаю с параметром .parent () , не удаляет класс. Если я проверяю с помощью инструментов Chrome Inspector, на них, похоже, воздействует кнопка «щелчок» (выделение этого элемента, когда я нажимаю), но классы просто не меняются, они остаются прежними.

Уже пробовал использовать .remove().attr("class", "<class name>"), но проблема та же, похоже, что они затронуты, но они не меняются.

Может кто-нибудь мне помочь?

0
Rui Leming

1 ответ

Я создал базовую макетную HTML-страницу ниже, и, используя ваш код без изменений, я вижу, что событие click для .btn-fechar-top действительно удаляет .show- наложить на второй div. Видите ли вы какие-либо различия в вашем коде и моем? Получаете ли вы какие-либо ошибки консоли (у вас загружен jQuery?)?

<div class = "btn-fechar-top">
  Test Click
</div>

<div class = "bg-over-lay show-over-lay">
  Test class
</div>
 $(".btn-fechar-top").click(function() {
        $(".bg-over-lay").removeClass("show-over-lay");
        $(this).parent().parent().removeClass(function (index, className) {
            return (className.match (/(^|\s)show-\S+/g) || []).join(' ');
        });
        level_menu = 0; 
 })