@ziqq

Js табы в чем проблема?

document.querySelector('.tab__titles').addEventListener('click', tabs);

function tabs(e) {
var target = e.target;
if (target.className === 'tab__title') {
var dataTab = target.getAttribute('data-tab');
var tabContent = document.querySelectorAll('.tab__content');
var tabTitle = document.querySelectorAll('.tab__title');
for (var i = 0; i < tabTitle.length; i++) {
tabTitle[i].classList.remove('is-active');
}
target.classList.add('is-active');
for (var i = 0; i < tabContent.length; i++) {
if (dataTab === i) { <-- в этом цикле всегда уходит в else почему?
console.log('BLOCK');
// tabContent[i].style.display = 'block';
}else{
// tabContent[i].style.display = 'none';
console.log('NONE');
}
}
} 
}
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
if (dataTab == i)
Поменять сравнение равенства на 2 знака (без учета типизации).
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
fruity4pie
@fruity4pie
A
'dataTab === i' => потому что здесь false
Ответ написан
Krasnodar_etc
@Krasnodar_etc
fundraiseup
В else добавьте, чтоб не гадать в чём проблема
console.log(dataTab, i);

Что выводит?
Ответ написан
Комментировать
@ziqq Автор вопроса
Спасибо всем за помощь, проблема была в сравнении + кэш.
Ответ написан
Комментировать
Loovery
@Loovery
Оптимист
Проблема в том что getAttribute всегда вытаскивает строку, а ваша переменная i - число. Вы пытаетесь сравнить число и строку
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы