Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.02.2021
Сообщений: 67

Ошибка в коде JS переключающем вкладки

13.04.2023, 22:58. Показов 455. Ответов 2

Студворк — интернет-сервис помощи студентам
Привет!

Для страницы необходимо сделать вкладки. Своих знаний, чтобы сделать это мне не хватает пока, поэтому взял чужой код. В примере он работает.

Проблема: при клике на вкладку нужный див не показывается, ни диву в табом, ни диву с контентом не присваивается класс active.

В консоли дает ошибку: tab is not defined.

Пожалуйста, помогите найти ошибку! Заранее всем спасибо!

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<div class="servicesTabs">
    <div class="tabs">
      <div class="tabItem">Wedding Planner</div>
      <div class="tabItem">Photographer</div>
      <div class="tabItem">Deejay</div>
      <div class="tabItem">Animations</div>
    </div>
    <div class="content">
      <div class="contentItem">
        <div class="subTitle"><h3>Wedding Planner</h3>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        </div>
        <div><img src="img/intro_01.jpg" class="image" alt=""></div>
      </div>
      <div class="contentItem">
        <div class="subTitle"><h3>Photographer</h3>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        </div>
        <div><img src="img/intro_02.jpg" class="image" alt=""></div>
      </div>
      <div class="contentItem">
        <div class="subTitle"><h3>Photographer</h3>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        </div>
        <div><img src="img/intro_02.jpg" class="image" alt=""></div>
      </div>
      <div class="contentItem">
        <div class="subTitle"><h3>Photographer</h3>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        <p>Lorem ipsum dolor sit amet, consectetur <span>adipiscing elit. Vivamus varius sodales purus ut tempus. Integer ac tempor est, sed ultricies dui.</p>
        </div>
        <div><img src="img/intro_02.jpg" class="image" alt=""></div>
      </div>
    </div>
  </div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.services {
    max-width: 90%;
    margin: 0 auto 50px auto;
}
.servicesTabs {
    overflow: hidden;
}
 
.tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: start;
}
.tabItem {
    padding: 0 0 10px 0;
    font-family: "Jaapokkiregular", serif;
    font-size: 18px;
    border-bottom: 1px solid transparent;
    cursor: pointer;
    flex-basis: 140px;
    text-align: center;
}
.tabItem:hover,
.tabItem.active {
    border-bottom: 1px solid red;
}
.content {
    margin-top: 30px;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: start;
    height: 700PX;
    width: 100%;
}
.contentItem {
    display: flex;
    justify-content: space-between;
    text-align: center;
    margin: 0 auto;
    position: absolute;
    width: 99.5%;
    box-shadow: 5px 5px 5px rgba(0,0,0,0.5);
    padding-top: 10px;
    opacity: 0;
    transform: translateX(100px);
}
.contentItem.active {
    transition: all 250ms;
    opacity: 1;
    transform: translateX(0);
    position: static;
}
.subTitle {
    font-family: "Jaapokki regular", serf;
    font-size: 24px;
    margin: 0 auto;
}
.subTitle h3 {
    margin-bottom: 40px;
}
.subTitle p {
    font-size: 18px;
    text-align: left;
    margin-bottom: 30px;
}
.image {
    margin-top: -10px;
    width: calc(300px + (800 - 300) * ((100vw - 320px) / (1800 - 320)));
    height: 100%;
    object-fit: contain;
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const tabs = document.querySelectorAll('.tabItem');
const contents = document.querySelectorAll('.contentItem');
 
tabs.forEach((tab, index) => {
    tab.onclick = () => {
        changeTab(index)
    };
});
 
function changeTab(index) {
    for (let tab of tabs) {
        tab.classList.remove('active');
    }
    tab[index].classList.add('active');
 
    for (let el of contents) {
        el.classList.remove('active');
    }
    contents[index].classList.add('active');
};
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2023, 22:58
Ответы с готовыми решениями:

Ошибка в коде взаимодействия клиента и сервера на основе протокола TCP/IP (ошибка в коде)
Задание: Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Реализовать параллельное соединение с использованием...

Ошибка при закрытии 0 вкладки TabWidget
1 - надо ли очищать память от editor'ов при закрытии в closeTab() или tabWidget.removeTab() сам удаляет всё что было у него в QWidget*. 2...

Ошибка при выборе вкладки в Tchart
захожу в редактор TChart далее выбираю Series и вкладка point выскакивает окно Подскажите, что за зверь и как бороться, если закрыть...

2
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1703 / 431
Регистрация: 14.03.2022
Сообщений: 4,347
13.04.2023, 23:07
Лучший ответ Сообщение было отмечено zaraizar как решение

Решение

Заменить
Цитата Сообщение от zaraizar Посмотреть сообщение
JavaScript
1
tab[index].classList.add('active');
На

JavaScript
1
tabs[index].classList.add('active');
1
0 / 0 / 0
Регистрация: 26.02.2021
Сообщений: 67
13.04.2023, 23:20  [ТС]
krvsa, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2023, 23:20
Помогаю со студенческими работами здесь

В браузерах открываются посторонние вкладки рекламные вкладки + не работают ява скрипты
Привет всем. Я являюсь не очень прошаренным пользователем ПК, поэтому обращаюсь за помощью к вам. С недавнего времени, после посещения...

Закрытие вкладки в PageControl - Не выходит определить, у какой вкладки нажата кнопка закрытия
Всем привет. Не могу оседлать pagecontrol. Проблема в том, что не могу определить у какой вкладки нажата кнопка закрытия. Допустим,...

Вертикальные вкладки на странице, новые вкладки, старые не удаляет
&lt;div id=&quot;tabs&quot; class=&quot;minsk_aweek&quot;&gt; &lt;nav class=&quot;navTabs&quot;&gt; &lt;a class=&quot;nav_tabs_link active&quot; href=&quot;#tamMinsk1&quot;&gt; ...

Ошибка 150 при создании таблицы, ошибка в коде?
Код генерируется программой, но работать на сервере нехочет, к сожелению попойму где там может быть ошибка. Опытным путём выяснил что...

Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Всем доброго времени суток! Написал программу в windows form. Несколько раз скомпилировал и все хорошо. Сейчас попробовал снова запустить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru