[英]Make Tab active when clicked with JavaScript
What I am trying to accomplish is making the clicked tab active我想要完成的是使单击的选项卡处于活动状态
I have seen a lot of jQuery examples, but I'm using JavaScript ES6我看过很多 jQuery 示例,但我使用的是 JavaScript ES6
I know it's an easy task but my mind is so done right now that I can't think我知道这是一项简单的任务,但我现在的想法已经完成,以至于我无法思考
here is the code: https://codepen.io/revatto/pen/wvMzOqo这是代码: https://codepen.io/revatto/pen/wvMzOqo
here is my main.js:这是我的 main.js:
const tabs = document.querySelectorAll('[data-tab-target]');
const tabsContents = document.querySelectorAll('[data-tab-content]');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
const target = document.querySelector(tab.dataset.tabTarget);
tabsContents.forEach(tabContent => {
tabContent.classList.remove('active');
})
target.classList.add('active');
})
})
You were only adding and removing 'active' class from tab contents you need to do the same with 'li' ie list too.您只是从选项卡内容中添加和删除“活动”class,您也需要对“li”即列表执行相同操作。
const tabs = document.querySelectorAll('[data-tab-target]');
const tabsContents = document.querySelectorAll('[data-tab-content]');
tabs.forEach(tab => {
tab.addEventListener('click', (e) => {
const target = document.querySelector(tab.dataset.tabTarget);
tabsContents.forEach(tabContent => {
tabContent.classList.remove('active');
})
target.classList.add('active');
//loop through 'li' items and remove 'active' class
tabs.forEach(tab => {
tab.classList.remove('active');
})
//add 'active' class to clicked 'li' item
e.target.classList.add("active");
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.