-
-
Save raddevon/8958486 to your computer and use it in GitHub Desktop.
// Opens accordion automatically if an accordion target is accessed from another page | |
// Assumes the accordion-group is the target linked to | |
function openAnchorAccordion() { | |
if (window.location.hash) { | |
var $target = $('body').find(window.location.hash); | |
if ($target.hasClass('accordion-group')) { | |
var $targetAccordion = $target.find('.collapse'); | |
$targetAccordion.collapse('show'); | |
} | |
} | |
} | |
openAnchorAccordion(); | |
$("body").on("click", "a", openHashAccordion); |
SabreCat is correct. I found putting the following code in my footer worked for me (also, make sure bootstrap.js is loaded before this, or at least don't defer
the loading of that script. You should probably enqueue
this for good practice.
` <script>
// Opens accordion automatically if an accordion target is accessed from another page
// Assumes the accordion-group is the target linked to
function openAnchorAccordion() {
if (window.location.hash) {
var jQuerytarget = jQuery('body').find(window.location.hash);
//console.log( jQuerytarget );
if (jQuerytarget.hasClass('panel-collapse')) {
var jQuerytargetAccordion = jQuerytarget.find('.collapse');
console.log( jQuerytargetAccordion );
jQuerytarget.collapse('show');
}
}
}
openAnchorAccordion();
jQuery("body").on("click", "a", openAnchorAccordion);
</script>`
Thanks this is just what I needed
To make this work with Bootstrap 4 you need to change this line from:
if (jQuerytarget.hasClass('panel-collapse')) {
To:
if (jQuerytarget.hasClass('collapse')) {
Then it works. It would be good if it could scroll to the accordion too but I have not yet worked that part out.
It's not working for me. Can you please post the complete code with javascript.
I am using this code for bootstrap 4. I just want to open that accordion tab on load. Placed it in window.onload
if (window.location.hash) {
var jQuerytarget = jQuery('body').find(window.location.hash);
if (jQuerytarget.hasClass('collapse')) {
var jQuerytargetAccordion = jQuerytarget.find('.collapse');
jQuerytarget.collapse('show');
}
}
For one thing, the function call needs to match the function declaration:
openHashAccordion
vsopenAnchorAccordion