I have three tabs, but when I click on any of them, nothing happens and there is no error in the console. What is wrong?
When I click on any of .tabs-nav-item
nothing happens.
function initTab(elem) {
document.addEventListener("click", function(e) {
if (!e.target.matches(elem + " .tabs-nav-item")) return;
else {
if (!e.target.classList.contains("active")) {
findActiveElementAndRemoveIt(elem + " .tabs-nav-item");
findActiveElementAndRemoveIt(elem + " .tab-content-item");
e.target.classList.add("active");
setTimeout(function() {
var panel = document.querySelectorAll(
elem + " .tab-content-item" + e.target.dataset.name
);
Array.prototype.forEach.call(panel, function(el) {
el.classList.add("active");
ckj;
});
}, 200);
}
}
});
}
function findActiveElementAndRemoveIt(elem) {
var elementList = document.querySelectorAll(elem);
Array.prototype.forEach.call(elementList, function(e) {
e.classList.remove("active");
});
}
initTab(".tabs");
<div class="tabs">
<div class="tabs-nav">
<p class="tabs-nav-item active" data-name="profile">Profile</p>
<p class="tabs-nav-item" data-name="messages">Messages</p>
<p class="tabs-nav-item" data-name="settings">Settings</p>
</div>
<div class="tabs-content">
<div class="profile active tab-content-item">
<h3>Lorem</h3>
</div>
<div class="tab-content-item messages">
<h3>ipsum </h3>
</div>
<div class="tab-content-item settings">
<h3>sit amet.</h3>
</div>
</div>
</div>