Ask Questions and Find Answers
Important:
Ask is now read-only. You can review any existing questions and answers, but not add anything new.
But - don't panic! While ask is no more, we've replaced it with discuss - the new Liferay Discussion Forum! Read more here here or just visit the site here:
discuss.liferay.com
RE: Adding (Collapse) accordion doesn't work (DXP 7.3)
I have tried to add an accordian to a Web Content Article Display Template.
The styling is correct, but the animation (javascript) doesn't work.
What step have I missed?
I was under the impression that
bootstrap was added by default.
Thanks in advance
Nick
EXAMPLE CODE USED:
<div class="accordion"
id="accordionExample">
<div
class="accordion-item">
<h2
class="accordion-header"
id="headingOne">
<button
class="accordion-button" type="button"
data-bs-toggle="collapse"
data-bs-target="#collapseOne"
aria-expanded="true"
aria-controls="collapseOne">
Accordion
Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse
collapse show" aria-labelledby="headingOne"
data-bs-parent="#accordionExample">
<div
class="accordion-body">
<strong>This
is the first item's accordion body.</strong> It is shown by
default, until the collapse plugin adds the appropriate classes that
we use to style each element. These classes control the overall
appearance, as well as the showing and hiding via CSS transitions.
You can modify any of this with custom CSS or overriding our default
variables. It's also worth noting that just about any HTML can go
within the <code>.accordion-body</code>, though the
transition does limit overflow.
</div>
</div>
</div>
<div
class="accordion-item">
<h2
class="accordion-header"
id="headingTwo">
<button
class="accordion-button collapsed" type="button"
data-bs-toggle="collapse"
data-bs-target="#collapseTwo"
aria-expanded="false"
aria-controls="collapseTwo">
Accordion
Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse
collapse" aria-labelledby="headingTwo"
data-bs-parent="#accordionExample">
<div
class="accordion-body">
<strong>This
is the second item's accordion body.</strong> It is hidden by
default, until the collapse plugin adds the appropriate classes that
we use to style each element. These classes control the overall
appearance, as well as the showing and hiding via CSS transitions.
You can modify any of this with custom CSS or overriding our default
variables. It's also worth noting that just about any HTML can go
within the <code>.accordion-body</code>, though the
transition does limit overflow.
</div>
</div>
</div>
<div
class="accordion-item">
<h2
class="accordion-header"
id="headingThree">
<button
class="accordion-button collapsed" type="button"
data-bs-toggle="collapse"
data-bs-target="#collapseThree"
aria-expanded="false"
aria-controls="collapseThree">
Accordion
Item #3
</button>
</h2>
<div id="collapseThree" class="accordion-collapse
collapse" aria-labelledby="headingThree"
data-bs-parent="#accordionExample">
<div
class="accordion-body">
<strong>This
is the third item's accordion body.</strong> It is hidden by
default, until the collapse plugin adds the appropriate classes that
we use to style each element. These classes control the overall
appearance, as well as the showing and hiding via CSS transitions.
You can modify any of this with custom CSS or overriding our default
variables. It's also worth noting that just about any HTML can go
within the <code>.accordion-body</code>, though the
transition does limit overflow.
</div>
</div>
</div>
</div>
It seems that your snippet is using an older version of Bootstrap than v4. So for example, these data attributes are not valid with Bootstrap v4:
data-bs-toggle="collapse" data-bs-target="#collapseOne"
I successfully tried the snippet provided in the Boostrap documentation with a Page Fragment and a Freemarker Template: https://getbootstrap.com/docs/4.0/components/collapse/#accordion-example
Can you confirm wether this snippet is working or not for you?
EDIT: You need to enable jQuery (Control Panel > System Settings > Third Party > jQuery).