I have a layout where if the image and/or text are clicked, then it populates different information below it. If I have an img and paragraph inside the button, it will only work if you click anywhere OUTSIDE the img and h tag. It also only works if there is nothing inside the button tag except for plain text for some reason (no p tag, no header, etc).
I'm not well versed with JavaScript so my question is: why is my JavaScript not allowing me to click on the content inside the button to populate the info below it, and only outside of it? Do I need to make the button into a div tag instead?
const wmButton = document.querySelector("button");
const tabs = document.querySelector(".wrapper");
const tabButton = document.querySelectorAll(
" .tab-button, .toggle-text, .toggle-img"
);
const contents = document.querySelectorAll(".content");
const wmWhiteBg = document.querySelector(".workmarket-active-bg");
if (tabs) {
tabs.onclick = (e) => {
const id = e.target.dataset.id;
if (id) {
tabButton.forEach((btn) => {
btn.classList.remove("active");
});
e.target.classList.add("active");
contents.forEach((content) => {
content.classList.remove("active");
});
const element = document.getElementById(id);
element.classList.add("active");
}
};
}
#tab-toggle--workmarket .container,
#tab-toggle--profservices .container {
margin: 30px auto;
}
#tab-toggle--workmarket #tab1,
#tab-toggle--workmarket #tab2,
#tab-toggle--workmarket #tab3,
#tab-toggle--workmarket #tab4,
#tab-toggle--workmarket #tab5,
#tab-toggle--workmarket #tab6,
#tab-toggle--profservices #tab1,
#tab-toggle--profservices #tab2,
#tab-toggle--profservices #tab3,
#tab-toggle--profservices #tab4,
#tab-toggle--profservices #tab5,
#tab-toggle--profservices #tab6 {
display: inline-flex;
align-items: center;
justify-content: center;
width: 100%;
gap: 50px;
padding-top: 50px;
}
#tab-toggle--workmarket .wrapper,
#tab-toggle--profservices .wrapper {
max-width: 1330px;
margin: auto;
border-radius: 10px;
}
#tab-toggle--profservices .buttonWrapper {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
background-color: #20347d;
border-radius: 10px;
height: 81px;
max-width: 848px;
margin: 0 auto;
position: relative;
z-index: 12;
}
#tab-toggle--profservices .no-bg {
background-color: #eff5ff;
height: auto;
}
#tab-toggle--profservices .contentWrapper {
max-width: 1220px;
margin: 0 auto;
}
#tab-toggle--workmarket button.tab-button,
#tab-toggle--profservices button.tab-button {
font-family: var(--font-family-base);
color: #fff;
}
.tab-button.tab-button-img {
background-color: #eff5ff !important;
height: 100% !important;
}
#tab-toggle--profservices button.tab-button {
border: none;
padding: 10px;
background-color: #20347d;
color: #fff;
font-size: 18px;
cursor: pointer;
transition: 0.5s;
border-radius: 10px;
width: 202px;
height: 61px;
margin: 0 20px;
}
#tab-toggle--workmarket button:hover,
#tab-toggle--profservices button:hover {
background-color: #d5e3ff;
}
#tab-toggle--workmarket button.active,
#tab-toggle--profservices button.active {
background-color: white;
margin: 0 20px;
}
#tab-toggle--workmarket button:hover,
#tab-toggle--workmarket button.active,
#tab-toggle--profservices button:hover,
#tab-toggle--profservices button.active {
color: #000;
}
#tab-toggle--profservices button:hover,
#tab-toggle--profservices button.active {
width: 202px;
color: #33478c;
}
#tab-toggle--workmarket .active,
#tab-toggle--profservices .active {
background-color: #f3f4f6;
}
#tab-toggle--workmarket .content,
#tab-toggle--profservices .content {
display: none;
padding: 10px 20px;
}
#tab-toggle--profservices .content-regular.active {
display: flex;
justify-content: center;
padding: 70px 20px;
align-items: center;
gap: 50px;
background-color: #fff;
border-radius: 10px;
margin: 0px;
box-shadow: rgba(0, 0, 0, 0.14) 0px 3px 15px;
}
#tab-toggle--profservices .content.active {
display: flex;
justify-content: center;
padding: 70px 20px;
align-items: center;
gap: 50px;
background-color: #fff;
border-radius: 10px;
margin: -30px;
box-shadow: rgba(0, 0, 0, 0.14) 0px 3px 15px;
}
<!-------- TAB TOGGLE SECTION -------->
<div class="bg-lightblue">
<div id="tab-toggle--profservices">
<div class="wrapper">
<div class="buttonWrapper no-bg gap-100">
<button class="tab-button tab-button-img active" data-id="implementation">
implement
<img
src="https://content.adp.com/-/media/apps/wfn/images/lp_professionalservices_tab3-transformation_170w_en.png?rev=de9e9832dc674d2ba354f7b8651c6524&hash=3E97CB9DC47244C3F516CA04E76F7E35"
width="150"
class="toggle-img"
/>
<h3 class="blue toggle-text">Implementation</h3>
</button>
<button class="tab-button tab-button-img" data-id="advisory">
advisory
<img
src="https://content.adp.com/-/media/apps/wfn/images/lp_professionalservices_tab3-transformation_170w_en.png?rev=de9e9832dc674d2ba354f7b8651c6524&hash=3E97CB9DC47244C3F516CA04E76F7E35"
width="150"
class="toggle-img"
/>
<h3 class="blue toggle-text">Advisory</h3>
</button>
<button class="tab-button tab-button-img" data-id="integration">
integration
<img
src="https://content.adp.com/-/media/apps/wfn/images/lp_professionalservices_tab3-transformation_170w_en.png?rev=de9e9832dc674d2ba354f7b8651c6524&hash=3E97CB9DC47244C3F516CA04E76F7E35"
width="150"
class="toggle-img"
/>
<h3 class="blue toggle-text">Integration</h3>
</button>
<button class="tab-button tab-button-img" data-id="transformation">
transformation
<img
src="https://content.adp.com/-/media/apps/wfn/images/lp_professionalservices_tab3-transformation_170w_en.png?rev=de9e9832dc674d2ba354f7b8651c6524&hash=3E97CB9DC47244C3F516CA04E76F7E35"
width="150"
class="toggle-img"
/>
<h3 class="blue toggle-text">Transformation</h3>
</button>
</div>
<div class="contentWrapper">
<div class="content content-regular active" id="implementation">
<div class="pf-two-col-1">
<p class="deep-red wfn-caps bold pb-0 mb-0">Info 1</p>
<h2 class="pt-0 mt-0">
information here
</h2>
<ul class="profservices">
<li>
list 1
</li>
<li>list 2</li>
<li>
list 3
</li>
</ul>
</div>
<div class="pf-two-col-2">
<img src="https://content.adp.com/-/media/apps/wfn/images/lp_tabcomponent_image1.png?rev=5dd2ef9a431b456b9973dee3b4790cb9&hash=31696B489A01F403489B36816938CA88" class="pf-img-col2" skiplazy="" />
</div>
</div>
<div class="content" id="advisory">
<div class="pf-two-col-1">
<p class="deep-red wfn-caps bold pb-0 mb-0">info 2</p>
<h2 class="pt-0 mt-0">
information here
</h2>
<ul class="profservices">
<li>
list 1
</li>
<li>list 2</li>
<li>
list 3
</li>
</ul>
</div>
<div class="pf-two-col-2">
<img src="https://content.adp.com/-/media/apps/wfn/images/lp_tabcomponent_image2.png?rev=fe0c3ff8007c45e394c8502fcbe2e695&hash=3174FBD7B8A72AAE4198F4BDBA319A25" class="pf-img-col2" skiplazy="" />
</div>
</div>
<div class="content" id="integration">
<div class="pf-two-col-1">
<p class="deep-red wfn-caps bold pb-0 mb-0">info 3</p>
<h2 class="pt-0 mt-0">
information here
</h2>
<ul class="profservices">
<li>
info 1
</li>
<li>
info 2
</li>
<li>
info 3
</li>
</ul>
</div>
<div class="pf-two-col-2">
<img src="https://content.adp.com/-/media/apps/wfn/images/lp_tabcomponent_image1.png?rev=5dd2ef9a431b456b9973dee3b4790cb9&hash=31696B489A01F403489B36816938CA88" class="pf-img-col2" skiplazy="" />
</div>
</div>
<div class="content" id="transformation">
<div class="pf-two-col-1">
<p class="deep-red wfn-caps bold pb-0 mb-0">info 4</p>
<h2 class="pt-0 mt-0">
information here
</h2>
<ul class="profservices">
<li>
list 1
</li>
<li>list 2</li>
<li>
list 3
</li>
</ul>
</div>
<div class="pf-two-col-2">
<img src="https://content.adp.com/-/media/apps/wfn/images/lp_tabcomponent_image4.png?rev=17af045073894b44b91a98cb93b1f477&hash=C7B11A1FF252D81DE023CE812E9D33D0" class="pf-img-col2" skiplazy="" />
</div>
</div>
</div>
</div>
</div>
</div>